C# 入門 & 実践 / C sharp

3-16. nested class 入れ子クラス


実際に使ったことが無いのでわかりませんが・・・
クラスの中の特定の機能をまとめたクラスとしてわかりやすくするときなどに使うのでしょうか?
    class Hello
    {
        private int x = 0;

        internal class ChildHello
        {
            public void PrintX( Hello h )
            {
                Console.WriteLine("x = {0}", h.x );
            }
        }

    }

    class Tester
    {
        static void Main(string[] args)
        {
            Hello h = new Hello();
            Hello.ChildHello hc = new Hello.ChildHello();
            hc.PrintX( h );
        }
    }
入れ子クラス ChildHello からは、 Hello の private 変数 x を直接扱うことが出来ます。
外からインスタンス生成して使うには、public / internal の class にする必要があります。




3-15. ボックス化!? « 3. C# 入門 / 基礎、型、文法、基本? » 3-17. 演算子のオーバーロード!

C# 入門 & 実践 / C sharp