C# 入門 & 実践 / C sharp
3-15. ボックス化!?
int などの値は、ラッパークラスではないので、オブジェクトではないが
ボックス化することで、オブジェクトとして利用できる。
使い方としては、
static public void SetObj( Object obj )
のようにObjectを引数とすることで、何でも受け付けるように出来るという使い方をするようです。
Console.WriteLine
のようなものは、int でも string でもそのまま表示できるのがボックス化を使っているそうです。
class Hello
{
// 例えばこんな関数。
static public void SetObj( Object obj )
{
Console.WriteLine("Object : {0} {1}", obj.GetType(),obj.ToString() );
}
static void Main(string[] args)
{
int i = 0;
i++;
Console.WriteLine("int : {0} {1}", i.GetType(), i.ToString() );
// 自動的なボックス化
SetObj(i);
// 明示的なボックス化
Object obj = i;
// ↓これはintではないので出来ない。
// obj++;
// ボックス化の解除
int j = (int)obj;
j++;
// と int に戻った。
}
}
3-14. 抽象クラス / abstract / override / sealed class «
3. C# 入門 / 基礎、型、文法、基本? »
3-16. nested class 入れ子クラス
C# 入門 & 実践 / C sharp