VisualStudio/C#

[C#] is 와 as

usingsystem 2024. 5. 27. 22:18
728x90

C#에서 is와 as 키워드는 타입 검사를 수행하고 타입 변환을 안전하게 처리하는 데 사용됩니다. 이 키워드들은 특히 상속 관계에 있는 객체를 다룰 때 유용합니다.

is 키워드

is 키워드는 객체가 특정 타입인지 확인할 때 사용됩니다. 객체가 해당 타입이거나 해당 타입에서 파생된 타입이면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 또한, C# 7.0부터는 is 키워드를 사용하여 변환된 결과를 새로운 변수에 할당할 수도 있습니다.

class Base { }

class Derived : Base { }

class Program
{
    static void Main()
    {
        Base b = new Derived();

        if (b is Derived)
        {
            Console.WriteLine("b is of type Derived or a type derived from Derived");
        }
        else
        {
            Console.WriteLine("b is not of type Derived");
        }

        // C# 7.0부터 가능한 패턴 매칭
        if (b is Derived d)
        {
            // d는 Derived 타입으로 캐스팅된 b입니다.
            Console.WriteLine("b is of type Derived and is cast to d");
        }
    }
}

as 키워드

as 키워드는 객체를 특정 타입으로 변환하려고 시도합니다. 변환이 성공하면 변환된 객체를 반환하고, 실패하면 null을 반환합니다. as 키워드는 예외를 발생시키지 않기 때문에 예외 처리 코드가 필요하지 않습니다.

class Base { }

class Derived : Base { }

class Program
{
    static void Main()
    {
        Base b = new Derived();

        Derived d = b as Derived;

        if (d != null)
        {
            Console.WriteLine("b was successfully cast to Derived");
        }
        else
        {
            Console.WriteLine("b is not of type Derived");
        }
    }
}

비교와 활용

  • 타입 확인 및 조건부 실행: is 키워드는 객체가 특정 타입인지 확인하고, 그에 따라 조건부로 코드를 실행하고 싶을 때 유용합니다.
  • 안전한 타입 변환: as 키워드는 객체를 특정 타입으로 변환하고, 변환 실패 시 null을 반환하여 예외 없이 처리하고자 할 때 사용됩니다.
728x90