Initial:AM Name:Atsuko Maeda Initial:AO Name:Akihoto Okano Initial:NS Name:Nozomi Sasaki Initial:SK Name:Seisirou Katou Initial:AU Name:Aya Ueto |
前田稔(Maeda Minoru)の超初心者のプログラム入門
/*************************************/ /*★ Dispose で解放する 前田 稔 ★*/ /*************************************/ using System; using System.Collections; class Prog { public static void Main() { MyClass cls = new MyClass(); cls.AddName("SK", "Seisirou Katou"); cls.AddName("AU", "Aya Ueto"); cls.Print(); cls.Dispose(); // これ以降、MyClass() を使わない処理が続く } } |
/*************************************/ /*★ Dispose で解放する 前田 稔 ★*/ /*************************************/ using System; using System.Collections; class Prog { public static void Main() { using(MyClass cls = new MyClass()) { cls.AddName("SK", "Seisirou Katou"); cls.AddName("AU", "Aya Ueto"); cls.Print(); } // これ以降、MyClass() を使わない処理が続く } } |
//MyClass class MyClass : IDisposable { ArrayList array; //Constructor public MyClass() { array = new ArrayList(); array.Add(new DataDef("AM", "Atsuko Maeda")); array.Add(new DataDef("AO", "Akihoto Okano")); array.Add(new DataDef("NS", "Nozomi Sasaki")); } //リソースを解放する関数 public void Dispose() { // GCによるメモリ回収時にFinalize()呼び出しをさせない。 GC.SuppressFinalize(this); } //Destructor ~MyClass() { // Dispose()が呼ばれないときはデストラクタから呼び出す Dispose(); } //名前を追加登録する関数 public void AddName(string ini, string name) { array.Add(new DataDef(ini, name)); } //登録されている名前一覧を表示する関数 public void Print() { foreach(DataDef DAT in array) Console.WriteLine("Initial:{0} Name:{1}", DAT.Initial, DAT.Name); } } |
//データ定義 Class class DataDef { public string Initial; public string Name; //Constructor public DataDef(string ini, string name) { Initial= ini; Name= name; } } |