2012-06-11 3 views
2

;문자열 url = (문자열) 데이터와 문자열 url = 데이터의 차이점은 무엇입니까?</p> <p>문자열 URL = (문자열) 데이터 AND 문자열 URL = 문자열 데이터의 차이가 무엇

더 좋은 방법은 무엇입니까?

+0

다른 많은 질문의 Repost 나는 중복 의미 : [C#에서 다음과 같은 캐스트의 차이점은 무엇입니까?] (http://stackoverflow.com/questions/702234/what-is-the-difference-between-the- 후속 주행 중) – Bastardo

답변

6

캐스트가 실패 할 경우 첫 번째 구문은 InvalidCastException을 던지고 변수가 문자열이 아니면 as 연산자는 null을 반환합니다.

더 좋은 방법은 무엇입니까?

달성하려는 목표에 따라 달라집니다. 키워드 방어 캐스트는 같은 특정 유형의 객체를 캐스팅하는 시도as

1

, 예외를 throw하지 않습니다. 실패 할 경우 결과 변수는 null입니다. 반면에 직접 캐스팅은 1 way ticket 캐스팅입니다. 실패하면 예외가 발생합니다.

본질적으로 객체는 특정 유형으로 캐스트 할 수 있지만 똑같은 일을하지만 캐스트가 유효하지 않은 경우 예외를 throw하고 다른 하나는 "정상적으로 실패합니다".

사용하는 시나리오는 실제로 시나리오에 따라 다릅니다. 변수가 코드의 필수 부분 인 경우 (즉, 형 변환이 실패한 경우 진행중인 코드를 계속 수행 할 필요가없는 경우) 직접 형변환을 사용하고 예외를 처리하십시오. 그러나 예외를 던지거나 null 값을 처리하지 않는 것이 매우 유용합니다.

3

생각해 캐스팅에 하나있을 때