书上说:一般情况下,如果没有提供任何构造函数,编译器会在后台创建一个默认的构造函数,它把所有的成员字段初始化为默认的标准值。
根据我下面的代码,编译器就不会在后台提供默认的构造函数了,但是为什么编译成功了,而且编译提示警告“从未对字段“One.Person.foreName”赋值,字段将一直保持其默认值 null”,那么是什么把这个字段初始化为null的呢
class EntryPoint
{
public static void Main()
{
Person Jack = new Person(6);
Console.WriteLine(Jack.ForeName);
}
} class Person
{
private string foreName;
public Person(int x)
{
}
public string ForeName
{
get
{
return foreName;
}
}
}
根据我下面的代码,编译器就不会在后台提供默认的构造函数了,但是为什么编译成功了,而且编译提示警告“从未对字段“One.Person.foreName”赋值,字段将一直保持其默认值 null”,那么是什么把这个字段初始化为null的呢
class EntryPoint
{
public static void Main()
{
Person Jack = new Person(6);
Console.WriteLine(Jack.ForeName);
}
} class Person
{
private string foreName;
public Person(int x)
{
}
public string ForeName
{
get
{
return foreName;
}
}
}
引用类型 默认值为null
string.isNullOrEmpty
//这是默认的构造函数,
//当你申明了 public Person(int x)这个构造函数时,默认的就不存在了
public Person()
{
}