c#コンストラクタ

4592 ワード

  • コンストラクタで、クラスインスタンス化時に呼び出されるnewキーワードが呼び出されるコンストラクタです.
  • クラスにパラメータ付きコンストラクタが定義されている場合、コンパイラはパラメータなしコンストラクタを生成しません.この場合、非パラメトリックコンストラクション関数を呼び出す必要がある場合は、クラスで定義する必要があります.そうしないと、コンパイラはエラーを報告します.
  •      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();
    
            }
        }
    }
    
  • プライベート構造関数の最も典型的な応用は設計モードにおける単一例モード
  • である.
     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);
            }
         }