Ошибка компилятора 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
}
}