编译器错误 CS0135
“declaration1”与声明“declaration2”冲突
编译器不允许隐藏名称,这通常会导致代码中的逻辑错误。
下面的示例生成 CS0135:
C#
// CS0135.cs
public class MyClass2
{
public static int i = 0;
public static void Main()
{
{
int i = 4;
i++;
}
i = 0; // CS0135
}
}
来自 C# 语言规范:
局部变量声明空间和嵌套局部变量声明空间不能包含同名的元素。 因此在嵌套声明空间中,不可能在封闭声明空间中声明与局部变量或常量同名的局部变量或常量。 只要声明空间都不包含另一个声明空间,两个声明空间都可包含同名的元素。