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