1

我重命名了我的一个 c# 类,现在我无法访问该类中的“public const byte”变量。我在解决方案资源管理器中对其进行了重命名,当它询问我是否要在项目中对代码元素“className”的所有引用执行重命名时,我选择了“是”。

我收到的错误消息是:“无法使用实例引用访问成员 'Namespace1.Class1.CONSTANT_NUM';改为使用类型名称对其进行限定”。

类中的其他所有内容(即方法和非 const 字段)都有效,但我不知道为什么我不能再访问公共 const 字段了?有任何想法吗?

4

1 回答 1

1

常量与特定类型相关联,而不是特定实例(被认为是静态的)。

您的错误消息告诉您,您正在尝试const从特定的类实例访问 a,而不是类型。

因此,如果您的课程是:

public class Class1()
{
    public const int MY_INT = 5;
}

您可能会尝试在代码中的某处执行此操作:

Class1 thisInstance = new Class1();
Console.WriteLine(thisInstance.MY_INT); // Will cause an error.

您可能想要做的是:

Console.WriteLine(Class1.MY_INT);

编辑:可能是在错误之前,您的实例名称与您的类型名称相同,并且编译器无法推断出您的意思。

于 2013-06-25T14:34:29.000 回答