做营销型网站需要注意哪些点,建设网站实训,网站建设在哪个会计科目核算,wordpress适合企业网站模板C# 静态类时我们实战项目开发中用的非常多的。有些时候可能他的执行顺序并非如我们认为的那样#xff0c;那就快速来看一下吧#xff01;
在C#中#xff0c;静态类的构造函数是在第一次访问该类的任何成员时执行的。静态构造函数是不可继承的#xff0c;并且在访问静态类的…C# 静态类时我们实战项目开发中用的非常多的。有些时候可能他的执行顺序并非如我们认为的那样那就快速来看一下吧
在C#中静态类的构造函数是在第一次访问该类的任何成员时执行的。静态构造函数是不可继承的并且在访问静态类的任何静态成员之前自动执行静态构造函数。
静态构造函数通常用于初始化静态类的静态成员并且它们在静态类的生命周期内只执行一次。
静态类中的字段和属性的执行顺序与它们在类定义中的顺序相同。字段首先初始化然后是属性。
这里重点在于 不管你是否访问字段只要访问了静态类所有的字段第一时间按照顺序都初始化但是对于属性不会都初始化不管你属性的定义顺序永远也是等第一用时才会初始化这个属性。
而构造函数就是你用单例的new时才会被第一次调用所以基本上晚于第一个属性创建时。
下面是一个示例代码演示了静态类中构造函数、字段和属性的执行顺序 using System;public class Program
{static Program(){Console.WriteLine(静态构造函数被执行);}public static int StaticField PrintAndReturn(1, 静态字段初始化);public static int StaticProperty{get{Console.WriteLine(静态属性被访问);return PrintAndReturn(2, 静态属性返回值);}}public static int PrintAndReturn(int value, string message){Console.WriteLine(message);return value;}static void Main(){Console.WriteLine(Main方法开始执行);Console.WriteLine($StaticField: {Program.StaticField} );Console.WriteLine($StaticProperty: {Program.StaticProperty} );}
} 常用的懒加载线程安全单例规范的常用写法
public class Singleton
{private static Singleton instance null;private static readonly object padlock new object();Singleton(){}public static Singleton Instance{get{if (instance null){lock (padlock){if (instance null){instance new Singleton();}}}return instance;}}
}