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;
}
}
|
![]()