Section 37.5: 명시적 타입 변환 (Explicit Casting)
만약 하나의 값이 다른 특정 타입에 해당한다는 사실을 알고 있다면, 해당 타입이 필요한 상황에 맞추어 값을 명시적으로 (explicitly) 타입 변환하여 사용할 수 있다.
object value = -1;
int number = (int) value;
Console.WriteLine(Math.Abs(number));
만약 위 예제에서 value
를 Math.Abs()
메소드에 직접 파라미터로 전달한다면, Math.Abs()
는 object
를 파라미터로 받는 오버로드 (overload) 가 정의되어 있지 않기에 컴파일 오류가 발생할 것이다.
만약 value
가 실제로는 int
타입으로 변환될 수 없는 값인 경우, 위 예제 코드의 두번째 라인은 InvalidCastException
예외를 발생시킬 것이다.
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
'번역 > C# Notes for Professionals' 카테고리의 다른 글
37.7: 묵시적 타입 변환 (Implicit Casting) (0) | 2022.01.13 |
---|---|
37.6: 안전한 명시적 타입 변환 (as 연산자를 이용한) (0) | 2022.01.12 |
37.4: LINQ 타입 변환 (Casting) 연산들 (0) | 2022.01.11 |
37.3: 변환 연산자 (Conversion Operator) (0) | 2021.12.28 |
37.2: 다중 상속된 객체를 원하는 기본 (base) 타입으로 캐스팅하기 (0) | 2021.12.13 |