is, as

Fruit·2023년 3월 29일

✨ Hello C#!

목록 보기
28/34
post-thumbnail

🌸 is

  • 객체가 해당 형식인지 검사하여 bool 값을 반환한다.


🌸 as

  • 형식 변환 연산자와 같은 역할을 한다. (())
  • 변환에 실패하는 경우 객체 참조를 null 로 만든다.
    (형식 변환 연산자는 변환에 실패하는 경우 에러 발생)
  • 참조 형식에만 사용할 수 있다.
using System;

namespace TypeCasting
{
    class Mammal
    {
        public void Nurse()
        {
            Console.WriteLine("Nurse()");
        }
    }

    class Dog : Mammal      // Mammal 클래스 상속
    {
        public void Bark()
        {
            Console.WriteLine("Bark()");
        }
    }

    class Cat : Mammal      // Mammal 클래스 상속
    {
        public void Meow()
        {
            Console.WriteLine("Meow()");
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            Mammal mammal = new Dog();      // mammal - TypeCasting.Dog
            Dog dog;

            if (mammal is Dog)
            {
                dog = (Dog)mammal;
                dog.Bark();
            }

            Mammal mammal2 = new Cat();
            Cat cat = mammal2 as Cat;       // cat - TypeCasting.Cat

            if (cat != null)
                cat.Meow();


            Cat cat2 = mammal as Cat;		// mammal은 TypeCasting.Dog 이므로 변환 실패

            if (cat2 != null)
                cat.Meow();
            else
                Console.WriteLine("cat2 is not a Cat");
        }
    }
}

[실행 결과]
Bark()
Meow()
cat2 is not a Cat
profile
🌼인생 참 🌻꽃🌻 같다🌼

0개의 댓글