编译器错误 CS0438
更新:2007 年 11 月
错误消息
“module_1”中的类型“type”与“module_2”中的命名空间“namespace”冲突。
当某个源文件中的类型与其他源文件中的命名空间冲突时会发生此错误。当它们中的一个或两者都来自于某个添加的模块时,通常会发生此情况。若要解决此错误,请重命名导致此冲突的类型或命名空间。
下面的示例生成 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
}
}