1. 主要演示构造函数的继承
-
声明空构造函数可阻止自动生成默认构造函数。
-
如果您不对构造函数使用访问修饰符,则在默认情况下它仍为私有构造函数。
-
通常显式地使用 private 修饰符来清楚地表明该类不能被实例化。
2. 静态构造函数
-
静态构造函数具有以下特点:
-
静态构造函数既没有访问修饰符,也没有参数。
-
在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类。
-
无法直接调用静态构造函数。
-
在程序中,用户无法控制何时执行静态构造函数。
-
静态构造函数的典型用途是:当类使用日志文件时,将使用这种构造函数向日志文件中写入项。
-
静态构造函数在为非托管代码创建包装类时也很有用
3. 示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//Description: 构造函数测试
namespace NetTest
{
public class Father
{
public Father()
{
Console.Out.WriteLine("Father say");
}
public static Father()
{ }
*/
public Father(string s)
{
Console.Out.WriteLine(s + ":Father Say");
}
}
public class Son:Father
{
/*
//调用父无参构造函数类构造函数
public Son()
{
Console.Out.WriteLine("Son say");
}
*/
public Son(string s)
{
Console.Out.WriteLine("good son say:");
}
/* base显示调用父类构造函数
public Son()
: base("jack")
{
Console.Out.WriteLine("Son say");
}
*/
/*子类会隐示调用父类无参构造函数*/
/*this调用自身重载的构造函数*/
public Son()
: this("call myself another constructor")
{
Console.Out.WriteLine("above sentence calling myself");
}
}
public class TestConstructor
{
public void Test()
{
new Son();
}
}
}