🌸 is
- 객체가 해당 형식인지 검사하여 bool 값을 반환한다.
🌸 as
- 형식 변환 연산자와 같은 역할을 한다. (())
- 변환에 실패하는 경우 객체 참조를 null 로 만든다.
(형식 변환 연산자는 변환에 실패하는 경우 에러 발생)
- 참조 형식에만 사용할 수 있다.
using System;
namespace TypeCasting
{
class Mammal
{
public void Nurse()
{
Console.WriteLine("Nurse()");
}
}
class Dog : Mammal
{
public void Bark()
{
Console.WriteLine("Bark()");
}
}
class Cat : Mammal
{
public void Meow()
{
Console.WriteLine("Meow()");
}
}
class MainApp
{
static void Main(string[] args)
{
Mammal mammal = new Dog();
Dog dog;
if (mammal is Dog)
{
dog = (Dog)mammal;
dog.Bark();
}
Mammal mammal2 = new Cat();
Cat cat = mammal2 as Cat;
if (cat != null)
cat.Meow();
Cat cat2 = mammal as Cat;
if (cat2 != null)
cat.Meow();
else
Console.WriteLine("cat2 is not a Cat");
}
}
}
[실행 결과]
Bark()
Meow()
cat2 is not a Cat