본문 바로가기

개인공부/C#

[C#] IS, AS

 

■ is, as 연산자 :

 객체의 형식을 확인하는 연산자, 다운 캐스팅(Down Casting) 전 확인이 필요할 때 사용

 

 - is : 객체가 해당 형식에 해당하는지 검사하여 그 결과를 bool 값으로 반환 

 - as : 형식 변환 연산자와 같은 역할, 형 변환에 실패하면 객체 참조를 null로 만듦

 

※ 다운 캐스팅(DownCasting)?

 부모 클래스의 객체를 자식 클래스의 객체로 변환, "[C#] 상속(Inheritance)" 참고

 

[C#] 상속(Inheritance)

■ 상속(Inheritance) :  - 상속은 부모가 자식에게 재산 혹은 권리 등을 물려주는 것으로 부모 클래스의 기능을 자식 클래스가 상속받아 사용하는 것  - 특정 기능을 제공하는 부모클래스를 정의하

memoo-list.tistory.com

 

 

■ 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()}");

    }
}

 

Example 결과