静态构造方法调用问题
class MyClass
{
static MyClass()
{
Console.WriteLine("静态构造方法1");
}
public MyClass()
{
Console.WriteLine("构造方法!");
}
public static void MyMethod()
{
Console.WriteLine("静态方法2");
}
}
class MainClass
{
static void Main()
{
MyClass mc = new MyClass();
MyClass.MyMethod();
}
}
运行结果:静态构造方法1
构造方法!
静态方法2
请问static MyClass()没有显示调用,为什么会运行它里的代码,而且static MyClass()是静态方法,为什么用MyClass 类调用不了它
------解决方案--------------------类的静态构造函数在给定应用程序域中至多执行一次
创建类的实例或者引用类的任何静态成员会自动激发静态构造函数
静态构造函数是不可继承的,而且不能被直接调用。
------解决方案--------------------构造函数先静态后实例
静态构造函数自动调用,
实例构造函数你也不可以调用阿如MyClass mc = new MyClass();
你也不能这样用啊mc.MyClass();
------解决方案--------------------静态的方法不用实例话可以通过类型直接调用,
如
class aa
{
aa()
{}
static void bb()
{}
}
想调用bb()的话,用aa.bb()就OK了