Programing/C#

[Effective C#] 아이템3: 캐스트보다는 is, as가 좋다

Napoliano 2025. 2. 13. 11:10
728x90

 

 

 

형변환을 수행하는 경우 캐스팅을 사용하기보다 as 연산자를 사용하는 것이 좋다. as를 사용하는 편이 더 안전하기도 하거니와 런타임에 더 효율적으로 동작한다. 다만 as나 is 연산자를 사용하면 사용자 정의 형변환은 수행되지 않는다.

 

as 연산자와 캐스팅의 가장 큰 차이는 사용자 정의 형변환을 어떻게 다루는가 하는 점이다. as나 is 연산자는 런타임에 객체의 타입을 확인하고 필요에 따라 박싱을 수행하는 것을 제외하고는 어떠한 작업도 수행하지 않는다. 임의의 객체를 다른 타입으로 형변환하려면 이 객체는 지정한 타입이거나 혹은 지정한 타입을 상속한 타입이어야 한다. 그 외의 경우는 모두 실패한다. 반면 캐스팅을 사용하는 경우에는 객체를 지정한 타입으로 변환하기 위해서 형변환 연산자가 개입될 수 있다.

 

 

 

728x90