728x90
static void Main(string[] args)
{
object[] objects = {
new M3(),
new Hooptie(),
};
foreach (M3 obj in objects) {
Console.WriteLine(obj);
Is(obj);
As(obj);
Cast(obj);
Console.WriteLine("------");
}
}
private static void Cast(object obj)
{
try
{
M3 m3 = (M3)obj;
Console.WriteLine("(M3) returned {0}", m3);
}
catch (InvalidCastException)
{
Console.WriteLine("InvalidCastException");
}
}
private static void As(object obj)
{
M3 m3 = obj as M3;
Console.WriteLine("as M3 returned {0}", m3);
}
private static void Is(object obj)
{
bool isICar = obj is ICar;
Console.WriteLine("is ICar returned {0}", isICar);
}
is : 해당 클래스 또는 부모클래스 중에 속해 있는지는 확인한다.
As : 부모 클래스 중에서 해당 클래스가 속하면 그 클래스의 참조자를 반환한다. 만약 아무것도 속하지 않으면, null을 반환한다.
Cast : 해당 클래스이면 casting을 수행하고, 안되면 invalidCastException이 발생한다.
728x90
728x90