欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c# 构造函数

程序员文章站 2022-03-04 12:29:51
...
  1. 构造函数,类实例化时调用的 new 关键字就是调用的构造函数。
  2. 如果在类中定义了有参的构造函数,编译器就不会再生成无参的构造函数。此时若需要调用无参构造函数,需要在类中定义,否则编译器会报错。
     class Person
    {
        private string name;
        public string Name 
        {
            get { return name; }
        }
        public Person()//实例构造函数(无参构造函数)
        {
            this.name = "keeping moving";
        }
        public Person(string strname)//有参构造函数
        {
            this.name = strname;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();//调用无参构造函数
            Console.WriteLine(person.Name);

            Person person2 = new Person("li ming");//调用有参构造函数。
            Console.WriteLine(person2.Name);
            Console.ReadKey();

        }
    }
}
  1. 私有构造函数最典型的应用是设计模式中的单例模式
 class PersonS 
    {
        private string name;
        public static PersonS person;
        public string Name 
        {
            get { return name; }
        }
        //私有构造函数,只能在类的内部调用。
        private PersonS()
        {
            Console.WriteLine("调用了私有构造函数!");
            this.name = "learning hard";

        }
        public static PersonS GetInstance() 
        {
            person = new PersonS();
            return person;
        }
    }
      class Program
    {
        static void Main(string[] args)
        {     //单例模式
              PersonS p = PersonS.GetInstance();
            Console.WriteLine(p.Name);
        }
     }
  1. 静态构造函数。静态构造函数用于初始化类中的静态成员。静态构造函数只被执行一次
     class PersonSta 
    {
        private static string name;//静态字段
        public static string Name //静态属性
        {
            get 
            {
                return name;
            }
        }
        static PersonSta() //静态构造函数,仅执行一次
        {
            Console.WriteLine("静态构造函数被调用了");
            name = "keep moving";

        }

    }
      class Program
    {
        static void Main(string[] args)
        {
          //调用了两次,‘静态构造函数被调用了’--这句只被打印了一次。
              Console.WriteLine(PersonSta.Name);
            Console.WriteLine(PersonSta.Name);
        }
     }

上一篇: C#:构造函数

下一篇: C#构造函数