internal class Configuration
{
public static double CurrentFrameRate = 23.976;
public static string ListViewLineSeparatorString = "<br />";
private void test()
{
// Not accessible here
this.CurrentFrameRate = 30;
}
}
class main
{
// this would work just fine
private void Test()
{
Configuration.CurrentFrameRate = 23.976;
}
}
我的问题是为什么静态可以使用实例在其他类中访问,但不能在其创建的一个类中访问?
答案 0 :(得分:3)
this
keyword用于引用类的当前实例,但由于这些字段是静态的,因此它们不与任何实例相关联。尝试删除this
:
private void test()
{
CurrentFrameRate = 30;
}
或者通过选择性地指定类名,如下所示:
private void test()
{
Configuration.CurrentFrameRate = 30;
}
请注意,在这两种情况下,以及您为main
类显示的代码中,您实际上从未实际引用Configuration
类的任何实例。您引用了类本身的静态字段。
答案 1 :(得分:1)
静态字段属于类型本身,并且始终通过指定类型名称(如
)来引用Configuration.CurrentFrameRate
但是,类型本身内部的代码有一个快捷方式,您可以省略Configuration.
部分,只需将其用作CurrentFrameRate