C#细节之静态构造函数
静态构造函数,这个东东大家用的较少吧。
静态构造函数还是很有趣的,一下是它的特点:
1)在执行构造函数时会先执行静态构造函数。
2)调用类的静态成员时会先执行静态构造函数。
3)静态构造函数只执行一次。(无论再新建对象还是调用类的静态成员)
以下是包含静态构造函数的类。
class Stater
{
static void Main()
{
Test test = new Test();
Console.ReadKey();
}
}
结果:
测试二:
class Stater
{
static void Main()
{
Test.Name = "123";
Test.Method();
Console.ReadKey();
}
}
结果:
测试三:
class Stater
{
static void Main()
{
Test test = new Test();
Test test2 = new Test("Landpy");
Test test3 = new Test();
Test.Method();
Test.Name = "Landpy";
Console.ReadKey();
}
}
结果:
静态构造函数还是很有趣的,一下是它的特点:
1)在执行构造函数时会先执行静态构造函数。
2)调用类的静态成员时会先执行静态构造函数。
3)静态构造函数只执行一次。(无论再新建对象还是调用类的静态成员)
以下是包含静态构造函数的类。
public class Test
{
private static string _name;
public static string Name
{
get { return _name; }
set { _name = value; }
}
static Test()
{
Console.WriteLine("静态构造函数");
}
public Test(string name)
{
_name = name;
}
public Test()
{
Console.WriteLine("构造函数");
}
public static void Method()
{
Console.WriteLine("静态函数");
}
}
测试一:{
private static string _name;
public static string Name
{
get { return _name; }
set { _name = value; }
}
static Test()
{
Console.WriteLine("静态构造函数");
}
public Test(string name)
{
_name = name;
}
public Test()
{
Console.WriteLine("构造函数");
}
public static void Method()
{
Console.WriteLine("静态函数");
}
}
class Stater
{
static void Main()
{
Test test = new Test();
Console.ReadKey();
}
}
结果:
测试二:
class Stater
{
static void Main()
{
Test.Name = "123";
Test.Method();
Console.ReadKey();
}
}
结果:
测试三:
class Stater
{
static void Main()
{
Test test = new Test();
Test test2 = new Test("Landpy");
Test test3 = new Test();
Test.Method();
Test.Name = "Landpy";
Console.ReadKey();
}
}
结果: