親クラス子クラス

C#のclassの中にclassを書くことができるらしいです。

親クラスの定数は黙っていても子クラスの定数として使えますが親クラスの変数は子クラスの変数として使うには子クラスに親クラスの参照を渡してあげないといけないみたい。

 

    //親クラス
    class parent {
        private const int HOGE = 3;
        public int fuga = 4;
        private int sono = 5;

        //子クラス
        class child {
            private readonly parent parent;

            public child(parent parent) {
                this.parent = parent;
            }

            //親クラスの定数は読める
            public int constresult => HOGE;

            //親クラスの変数は読めない(ビルド通らない)
            public int valueresult => fuga;

            //親クラスの参照を子クラスに渡しておけば親クラスのprivateな変数も読める
            public int valueresult2 => this.parent.sono; 
        }
    }

 

子クラス、である。告らせる、ではありません。