Rah*_*hul 2 static-methods c#-2.0
用静态方法有一点疑问.
文档说"静态方法无法访问实例成员变量或静态方法和属性只能访问静态字段和静态事件,因为它在创建实例之前就已经执行了很多".因此,下面的代码无法编译
class staticclass
{
int a = 20; //Private member
public static void staticmethod()
{
Console.WriteLine("Value Of Instance member variable is: {0}",a); // Error
}
}
Run Code Online (Sandbox Code Playgroud)
但我们也知道,在静态方法中,我们可以创建同一个类的实例.
所以,稍微更改上面的代码我可以在静态方法中访问实例变量
class staticclass
{
int a = 20; //PRivate Memeber
public static void staticmethod()
{
staticclass sc = new staticclass();
Console.WriteLine("Value Of Instance member variable is: {0}",sc.a);
}
}
Run Code Online (Sandbox Code Playgroud)
编译精确并显示结果Value Of Instance member variable is: 20.
这是正常行为吗?或者我无法正确理解它?
我的意思是,如果是这样的情况,那么这些陈述是否成立static methods can only access static fields?
谢谢.