更新:2007 年 11 月

错误消息

局部变量“name”在声明之前无法使用。局部变量的声明隐藏字段“name”。

在给定块中标识符只能有一种含义。通过为该标识符引入另一种含义,与类字段同名的局部变量可以隐藏字段。因此,如果在方法中引用类字段,然后使用相同名称声明局部变量,则编译器将生成错误。

更正此错误

  • 使用 this.num 引用类字段。

  • 为局部变量提供一个与类字段名称不同的名称。

示例

下面的代码将生成 CS0844:

 复制代码
class Test
    {
        int num;
        public void TestMethod()
        {
            num = 5; // CS0844
            int num = 6;        }
        public static int Main()
        {
            return 1;
        }
    }