is 와 as
Programming/C# / 2010. 7. 21. 19:39
캐스팅을 하는 일반적인 방법은 다음과 같이 ()를 사용하는 것이다.
- var num = 3.0;
- var bnum = (byte)3.0; // bnum = 3
- var num = 3.0;
- var bnum = (byte)3.0; // bnum = 3
위 방법은 편하지만 안전하지는 않다. 엉뚱한 타입으로 캐스팅하면 문제 - InvalidCastException 발생 – 가 발생한다. 보다 안전한 방법으로 캐스팅하는 방법은 as를 사용하는 것이다.
- var ms = stream as MemoryStream;
- var ms = stream as MemoryStream;
만약 stream이 MemoyStream이 아니라면 ms에는null이 할당된다. 가능하다면 as를 사용하는 것이 읽기 편하고 안전하다. as를 사용하는 것이 ()보다 성능도 좋다고 한다. 단 int와 같은 built-in 데이타 타입은 as를 사용할 수 없다.
객체가 어떤 클래스에 속하는지 확인하기 위해서는 어떻게 할까? 그때는 is를 사용할 수 있다.
- if ( stream is MemoryStream )
- {
- var pos = stream.Position;
- }
- if ( stream is MemoryStream )
- {
- var pos = stream.Position;
- }
읽기 편하다. 아주 마음에 든다.
반응형
'Programming > C#' 카테고리의 다른 글
[Link] C# 관련 사이트 (0) | 2010.07.22 |
---|---|
C# 진법전환 (0) | 2010.07.22 |
region을 사용해서 코드를 깔끔하게 (0) | 2010.07.21 |
OnDragEnter, OnDragDrop을 이용하여 Drag and Drop된 파일경로 받아오기. (0) | 2010.07.21 |
C#, 간단한 Developing Tips (0) | 2010.07.21 |