我的代码如下
class MyStaticClass
{
static MyStaticClass{};
public static readonly MyStaticClass Instance = CreateMe();
public static int GetSomeValue = GetValue();
private static int GetValue()
{
return 0;
}
private static MyStaticClass CreateMe()
{
Console.WriteLine("This method was called");
return new MyStaticClass();
}
}
公开课节目 {
public static void Main()
{
int val=MyStaticClass.GetSomeValue;
}
}
O/p:
调用了该方法
当我调用 val
时,为什么调试器会访问 CreateMe
方法?我访问它的任何静态方法都会访问类中的所有静态方法吗?
最佳答案
方法 CreateMe()
被调用,因为您在以下语句中创建对象 Instance
时调用。
public static readonly MyStaticClass Instance = CreateMe();
这是您的类中的静态对象,是在您通过 MyStaticClass.GetSomeValue
访问该类时创建的。
Dubugging the code将使您清楚地了解语句的执行顺序。您可以阅读 MSDN 上有关调试的详细文章 Debugger Roadmap
关于c# - 静态类中的方法是如何调用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28893149/