入れ子になったクラス
C# では、クラスを入れ子にすることができます。以下は、サンプルプログラム。
public class Outside { private String name; public Outside( String n ) { name = n; } internal class Inside { public void Draw( Outside o ) { Console.WriteLine( "Name=" + o.name ); } } } public class Test { static void Main() { Outside o = new Outside( "Hello!" ); //Console.WriteLine( o.name );//!<できない Outside.Inside i = new Outside.Inside(); i.Draw( o );//!<できる } }
出力は、以下のようになり、Outsideのメンバnameはprivateにもかかわらず、別のインスタンスからアクセスできます。
Name=Hello!