静态构造函数
最近终于有时间了.又重新找来以前囫囵吞枣看过的<<C#高级编程>>第四版.以前看的不是很懂,现在又读了一遍终于有点印象了.为了怕忘记,变记录下来,就当作是读书笔记了.
今天看到的是静态构造函数,一直搞不懂静态函数的作用,现在看书才知道用静态构造函数的原因之一是因为:类的一些静态字段或者属性,需要在第一次使用类之前,从外部源中初始化(虽然到现在,没有用过,记下来吧,说不定以后的项目中就用到).
我们测试一下,如果使用静态构造函数
1:创建一个类ClassHasStaticConstructor,其中包含静态和非静态的构造函数
using System;
using System.Collections.Generic;
using System.Text;
namespace StaticConstructor
{
public class ClassHasStaticConstructor
{
public static string Name;
public ClassHasStaticConstructor()
{
Name = "set value by instance constructor";
}
static ClassHasStaticConstructor()
{
Name = "set value by static constructor";
}
}
}
下面我们看下调用的Main函数
using System;
using System.Collections.Generic;
using System.Text;
namespace StaticConstructor
{
class Program
{
static void Main(string[] args)
{
//直接调用
Console.WriteLine(ClassHasStaticConstructor.Name);
//实例化
ClassHasStaticConstructor classTest = new ClassHasStaticConstructor();
Console.WriteLine(ClassHasStaticConstructor.Name);
Console.ReadLine();
}
}
}
好了.看下结果吧
,
我们可以看到,直接输出的时候,类已经自动的调用了静态的构造函数.初始化了Name的值.
Net运行库没有确保什么时候会执行static Constructor,但一般会在第一次使用类的时候调用.