Поделиться через


Ошибка компилятора CS0438

Обновлен: Ноябрь 2007

Сообщение об ошибке

Тип "тип" в "модуль_1" конфликтует с пространством имен "пространство_имен" в "модуль_2".
The type 'type' in 'module_1' conflicts with the namespace 'namespace' in 'module_2'.

Данная ошибка возникает, если тип в файле исходного кода конфликтует с пространством имен в другом файле исходного кода. Это, как правило, происходит, если тип или пространство имен (или оба вместе) содержатся в добавленном модуле. Для устранения этой ошибки переименуйте тип или пространство имен, вызвавшие конфликт.

Следующий пример приводит к возникновению ошибки CS0438:

Сначала скомпилируйте этот файл:

// CS0438_1.cs
// compile with: /target:module
public class Util
{
   public class A { }
}

Затем скомпилируйте этот файл:

// CS0438_2.cs
// compile with: /target:module
namespace Util 
{
   public class A { }
}

И наконец, скомпилируйте этот файл:

// CS0438_3.cs
// compile with: /addmodule:CS0438_1.netmodule /addmodule:CS0438_2.netmodule
using System;
public class Test
{
   public static void Main() {
      Console.WriteLine(typeof(Util.A));   // CS0438
   }
}