Programming/C#
is 와 as
blueasa
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;
- }
읽기 편하다. 아주 마음에 든다.
반응형