as연산자의 경우 is연산자와 마찬가지로 형식과 연관된 연산자입니다. 다만 is연산자와 다른 점은 is연산자의 경우 type비교 결과에 따라 bool형식의 true, false를 반환합니다. 하지만 as연산자의 경우 형식 변환, 캐스팅에 활용됩니다. 왼쪽항의 객체에 오른쪽항의 타입을 비교하여 캐스팅 결과를 반환합니다. 만약 오른쪽 항의 캐스팅 결과가 성공하면 타입을 반환하고 실패하면 null을 반환합니다.
다만 as 연산자는 위 그림처럼 값형식이 아닌 참조형식만 캐스팅이 가능합니다. 그 점은 참고해주세요!
보통 캐스팅(형변환)에 활용합니다. p1의 경우 부모 클래스로 Child클래스를 포함하고 있지 않습니다. 당연하게도 형변환이 되지않습니다. 하지만 c2의 경우 Parent클래스를 상속받았기에 as연산자를 통해 null이 아닌 캐스팅이 잘 되는것을 볼 수가 있습니다.
'프로그래밍 > c#' 카테고리의 다른 글
c#_47 ?. ?? Null 조건 연산자 (0) | 2022.02.08 |
---|---|
c#_46 삼항 연산자 (0) | 2022.01.26 |
c#_is 연산자 (0) | 2022.01.10 |
c#_45 인터페이스 interface (0) | 2021.11.01 |
c#_44 추상화 클래스, 메소드 abstract (0) | 2021.09.29 |
댓글