首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

静态构造方法调用有关问题

2012-01-16 
静态构造方法调用问题class MyClass{static MyClass(){Console.WriteLine(静态构造方法1)}public MyCla

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

热点排行