■ is, as 연산자 :
객체의 형식을 확인하는 연산자, 다운 캐스팅(Down Casting) 전 확인이 필요할 때 사용
- is : 객체가 해당 형식에 해당하는지 검사하여 그 결과를 bool 값으로 반환
- as : 형식 변환 연산자와 같은 역할, 형 변환에 실패하면 객체 참조를 null로 만듦
※ 다운 캐스팅(DownCasting)?
부모 클래스의 객체를 자식 클래스의 객체로 변환, "[C#] 상속(Inheritance)" 참고
■ Example
class Car { }
class Bus : Car { }
class Truck : Car { }
class Program
{
static void Main(string[] args)
{
Car car = new Bus();
// is는 true, false 반환
Console.WriteLine($"car는 bus입니까? {car is Bus}");
Console.WriteLine($"car는 truck입니까? {car is Truck}");
// as는 true면 정상적으로 변환, false면 null
Bus bus = car as Bus;
if (bus != null)
Console.WriteLine($"car는 bus입니다. {bus.GetType()}");
Truck truck = car as Truck;
if (truck != null)
Console.WriteLine($"car는 truck입니다. {truck.GetType()}");
else
Console.WriteLine($"car는 truck이 아닙니다. {truck.GetType()}");
}
}
'개인공부 > C#' 카테고리의 다른 글
[C#] 인터페이스(Interface), 추상클래스(Abstract class) (0) | 2022.09.19 |
---|---|
[C#] 구조체(Struct), 튜플(Tuple) (0) | 2022.09.14 |
[C#] 중첩 클래스(Nested Class), 분할 클래스(Partial Class) (0) | 2022.09.08 |
[C#] 상속(Inheritance) (0) | 2022.09.07 |
[C#] 접근 제한자(Access Modifier) (0) | 2022.09.06 |