书上说:一般情况下,如果没有提供任何构造函数,编译器会在后台创建一个默认的构造函数,它把所有的成员字段初始化为默认的标准值。
根据我下面的代码,编译器就不会在后台提供默认的构造函数了,但是为什么编译成功了,而且编译提示警告“从未对字段“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;
            }
        }
    }

解决方案 »

  1.   

    声明了一个对象引用,它的值就是null。
      

  2.   

    string foreName
    引用类型 默认值为null
      

  3.   

    引用类型,默认值为null
    string.isNullOrEmpty
      

  4.   


    //这是默认的构造函数,
    //当你申明了 public Person(int x)这个构造函数时,默认的就不存在了
     public Person() 
            {
            }