【发布时间】:2011-02-18 14:09:56
【问题描述】:
我有一个这样的公开课:
public class ClassN
{
public const int SomeInt = 16;
...
}
这是使用
从其他地方调用的int myInt = ClassN.SomeInt
现在我必须将 16 更改为更动态的东西,看起来像这样:
public int SomeInt
{
get
{
//this method is not static and cant be changed to static
return GetIntDynamically();
}
}
当然,由于静态上下文,调用不再起作用。我无法创建 ClassN 的新实例...还有什么不违反编码规则的选项?
谢谢
【问题讨论】:
-
为什么不能创建一个新的ClassN实例?如果您能解释此声明背后的原因,我们或许可以提出一些建议。
-
我想你的意思是
public static int SomeInt?否则非静态方法调用没有问题。 -
@David:我指的是属性,而不是 const 字段。
-
@Timwi。啊,好吧,误会了。在这种情况下,请查看 getter 体内的注释...
-
@Timwi:他当然不是那个意思,因为这就是这个问题的全部意义......
标签: c# static properties