当我们想初始化一些静态变量的时候,就需要用到静态构造函数了。这个静态构造函数属于类,而不属于实例,就是说这个构造函数只会被执行一次,即:在创建第一个实例或引用任何静态成员之前,由.NET自动调用。现在碰到这样一个场景:提供一个静态方法,这个静态方法在不同的地方使用,涉及到一个参数 ...
当我们想初始化一些静态变量的时候,就需要用到静态构造函数了。这个静态构造函数属于类,而不属于实例,就是说这个构造函数只会被执行一次,即:在创建第一个实例或引用任何静态成员之前,由.NET自动调用。
现在碰到这样一个场景:提供一个静态方法,这个静态方法在不同的地方使用,涉及到一个参数值不同,而其他内容都完全一致。如果是将静态方法的内容复制出来做成另外一个方法,代码冗余太多,做法不可取。使用静态构造函数处理静态变量,则可以尽最大程度简化代码。如下示例:
/// <summary>/// 基类/// </summary>public class A{ public static get='_blank'>string Field = "original-test"; //静态构造函数 static A() { Field = "test-a"; } public static void Test() { Console.WriteLine("the output is : " + Field); }}/// <summary>/// 子类/// </summary>public class B : A{ //静态构造函数 static B() { Field = "test-b"; } public static new void Test() { A.Test();//调用基类方法,这个对基类Test函数的覆盖很重要,没有这个,那么调用B.Test()的时候其实是调用基类的Test方法。
} }
原标题:C# 静态构造函数使用
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。