为什么不能通过指定类名在创建的类中访问静态字段
本文关键字:创建 访问 字段 静态 不能 为什么 | 更新日期: 2023-09-27 18:05:08
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;
}
}
我的问题是为什么静态可以在其他类使用实例访问,而不是在一个它被创建?
this
关键字用于引用类的当前实例,但由于这些字段是静态的,因此它们不与任何实例相关联。尝试尝试删除this
:
private void test()
{
CurrentFrameRate = 30;
}
或者可选地指定类名,如:
private void test()
{
Configuration.CurrentFrameRate = 30;
}
请注意,在这两种情况下,以及在您为main
类展示的代码中,您从未实际引用Configuration
类的任何实例。您正在引用类本身的静态字段。
静态字段属于类型本身,并且总是通过指定类型名称(如
)来引用。Configuration.CurrentFrameRate
然而,在类型本身的代码中有一个快捷方式,您可以省略Configuration.
部分,只使用CurrentFrameRate