MSDN ÂüÁ¶: ÀϺΠÂüÁ¶ Çü½Ä º¯È¯¿¡¼´Â ÄÄÆÄÀÏ·¯°¡ ij½ºÆ®ÀÇ À¯È¿¼º ¿©ºÎ¸¦ È®ÀÎÇÏÁö ¸øÇÕ´Ï´Ù. µû¶ó¼ ¿Ã¹Ù¸£°Ô ÄÄÆÄÀÏµÈ Ä³½ºÆ® ÀÛ¾÷ÀÌ ·±Å¸ÀÓ¿¡ ½ÇÆÐÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼ º¼ ¼ö ÀÖ´Â °Íó·³, ·±Å¸ÀÓ¿¡ ½ÇÆÐÇÏ´Â Çü½Ä ij½ºÆ®´Â InvalidCastExceptionÀ» throwÇÏ°Ô µË´Ï´Ù. class Animal
{ public void Eat() { Console.WriteLine("Eating."); } public override string ToString() { return "I am an animal."; } } class Reptile : Animal { } class Mammal : Animal { } class Sample { public void Test() { Run(new Mammal()); } void Run(Animal a) { //Reptile r = (Reptile)a; Reptile r = a as Reptile; if (r != null) { Console.WriteLine("OK"); } } } Reptile r = (Reptile)a; "InvalidCastExceptionÀÌ(°¡) 󸮵µÁö ¾Ê¾Ò½À´Ï´Ù." ¿¡·¯ ¹ß»ý À§ÀÇ Ä³½ºÆÃÀ» ¾Æ·¡¿Í °°ÀÌ as¸¦ »ç¿ëÇϰųª IS ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ij½ºÆà Çϴ°ÍÀÌ ¾ÈÀüÇÏ´Ù. Reptile r = a as Reptile; ÂüÁ¶) https://msdn.microsoft.com/ko-kr/library/ms173105.aspx http://theburningmonk.com/2010/04/net-tips-using-as-vs-casting-in-csharp/ https://msdn.microsoft.com/ko-kr/library/cc488006.aspx |