ecsimsw

C# / Is와 As 본문

C# / Is와 As

JinHwan Kim 2019. 1. 18. 10:01

is / as

  • is
    - is 는 캐스팅이 가능한지를 확인하는 키워드이다. 캐스팅이 가능하면 true, 불가능하면 false를 리턴하는 것으로 객체와 참조 변수의 관계만을 확인 시켜준다.
    class Program { static void Main(string[] args) { Car myCar = new benz(); if(myCar is benz) { Console.WriteLine("casting"); } } } class Car{} class benz : Car{}
  • as
    - as 는 캐스팅이 가능하다면 바로 캐스팅을 시켜주고 아니라면 null을 리턴한다. (Car_benz as Benz).print()와 같이 캐스팅 후 다른 참조 변수 대입없이 바로 메소드 호출이 가능하다.
    class Program { static void Main(string[] args) { Car Car_benz = new Benz(); Car Car_bmw = new Car(); Benz benz = Car_benz as Benz; benz.print(); (Car_benz as Benz).print(); Console.Write(Car_bmw as Benz); } } class Car{} class Benz : Car { public void print() { Console.WriteLine("benz"); } }
  is/as를 사용하면 강제 캐스팅보다 더 안정적이고 캐스팅이 안될 경우를 한번 거를 수 있어 예외를 처리할 필요가 없지므로 코드가 훨씬 간결하고 가독성이 좋아진다.

'Language > C++, C#' 카테고리의 다른 글

C# / object / var / dynamic  (0) 2019.03.04
C# / Iterators/ IEnumerator, IEnumerable / yield  (0) 2019.03.01
OOP / Up Casting / Down Casting  (0) 2019.01.18
OOP / Class vs Struct / Memory aspects  (0) 2019.01.16
OOP / Encapsulation  (0) 2019.01.15
Comments