我在抽象类中声明const字段遇到了问题。这是为什么?
编辑
我应该澄清一下。我的问题是我的子类看不到const字段:
protected const string Prefix = "dynfrm_";
如果我删除const关键字,我可以从孙子类中访问它。
public abstract class Class1
{
protected const string Prefix = "dynfrm_";
}
public class Class2 : Class1
{
public void GetConst()
{
Console.WriteLine(Prefix);
}
}
请看下面的内容...
abstract class MyBase
{
protected const int X = 10;
}
class Derived : MyBase
{
Derived()
{
Console.WriteLine(MyBase.X);
}
}
看起来正常工作:
public abstract class Class1
{
protected const int Field1 = 1;
}
public class Class2 : Class1
{
public int M1()
{
return Field1;
}
}
我正在使用Visual Studio 2008 SP1,从一个后代中看到了protected const,并且编译结果符合预期。