C#系统默认构造函数
1、C#中如果您没有为对象提供构造函数,则默认情况下 C# 将创建一个构造函数,该构造函数实例化对象,并将成员变量设置为默认值表(C# 参考)中列出的默认值。非默认值列表中的类无法实例化
2、默认值表(C# 参考)

3、可以通过小实验测试
class Program
{
static void Main(string[] args)
{
ceshi2 p2 = new ceshi2();
Console.WriteLine("p1:{0}",p2.p1.P);
Console.ReadKey();
}
}
public class ceshi1
{
public int P { get; set; }
public ceshi1()
{
this.P = 1;
}
}
public class ceshi2
{
public ceshi1 p1 { get; set; }
}
运行该控制台应用程序将自动报错

4、不使用默认构造函数后
class Program
{
static void Main(string[] args)
{
ceshi2 p2 = new ceshi2();
Console.WriteLine("p1:{0}",p2.p1.P);
Console.ReadKey();
}
}
public class ceshi1
{
public int P { get; set; }
public ceshi1()
{
this.P = 1;
}
}
public class ceshi2
{
public ceshi1 p1 { get; set; }
public ceshi2()
{
this.p1 = new ceshi1();
}
}
运行正常