サブクラス定義時にbaseで親クラス属性を参照する注意点

796 ワード

    class Person

    {

        string name;

        public string Name

        {

            get { return name; }

            set { name = value; }

        }

    }



    class Sub_Person : Person

    {

      string a = base.Name; // base.Name 

       string b = this.Name; 

      public void SayHello() 

        {

            Console.WriteLine(" , {0}",base.Name);

            Console.WriteLine(" , {0}", this.Name);

        }

    }


ベースクラス・アクセスは、コンストラクション関数、インスタンス・メソッド、またはインスタンス・プロパティ・アクセサでのみ実行できます.
インスタンス化後にのみ、親関連属性とメソッドの継承が形成され、自身のメンバーの定義部分では、親の継承は形成されていません.
参照:http://msdn.microsoft.com/zh-cn/library/hfw7t1ce.aspx