日期:2014-05-18  浏览次数:20785 次

静态构造方法调用问题
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了