댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
C#
2012.12.24 10:33
is 와 as 키워드
조회 수 11794 댓글 0
http://blog.naver.com/rumaniel?Redirect=Log&logNo=10145203696 is 지정된
형식과 개체가 호환되는지 검사합니다.
보통 형 변환에 앞서 두 타입이 호환 가능한지 질의하여 True or False로 결과를 배출해 낸다.
▷지정된
식이 null이 아니고 예외를 throw하지 않은 채 지정된 개체를 지정된 형식으로 캐스팅할 수 있는 경우 is 식은 true가
됩니다.
▷식이 항상 true이거나 항상 false인 것으로 알려져 있는 경우 is 키워드는 컴파일 타임 경고를 발생시키지만 런타임에는 일반적으로 형식 호환성을 확인합니다. ▷is 연산자는 오버로드되지 않습니다. ▷is 연산자는 참조 변환, boxing 변환 및 unboxing 변환만 고려하고 사용자 정의 변환 같은 다른 변환은 고려되지 않습니다. 무명 메서드는 is 연산자의 왼쪽에 사용할 수 없습니다. 이 예외에는 람다 식이 포함됩니다. as연산자 간의 호환이 되는 경우 형 변환을 합니다. 즉 캐스트 연산자와 비슷한 역할을 합니다. 자세한건 아래 예제를 본 후 설명하곘습니다. a 라는 int 자료형이 맞나 안맞나를 확인하고 또 A라는 객체를 확인합니다. Byo라는 클래스는 Ayo라는 클래스를 상속 받았기 대문에 Ayo 와 비교한 경우에도 True의 값이 반환되었습니다. 그리고 대망의 객체 B ㅡㅡ object B = A as Ayo; 라는 구문에서 A는 Ayo라는 클래스와 호환이 되기때문에 B라는 객체를 A객체의 자료형(클래스)로 형변환시켜 줍니다. 왜 이런짓을 하냐 싶었는데 일반적인 캐스트 연산자로 형변환시 잘못된 경우 에러를 발생하는데 이 경우는 안전하게 할 수 있기 때문입니다. 보통 아래와 같이 형 변환에 사용한다고 합니다.
Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5