静态构造函数

 

最近终于有时间了.又重新找来以前囫囵吞枣看过的<<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,但一般会在第一次使用类的时候调用.

posted @ 2008-07-31 12:41  莫贝特(MBetter)  阅读(679)  评论(4编辑  收藏  举报