타입 캐스팅 비주얼 베이직 닷넷

몰리 펠에 의해 제공,수석 시스템 분석

비주얼 베이직 닷넷 캐스팅에 대한 두 가지 옵션을 제공합니다.

  • 유형:한 유형을 다른 유형으로 캐스팅하거나 변환합니다. 형식이 일치하지 않으면 강제 변환을 수행할 수 있습니다.그러나 형식이 일치하지 않으면 강제 변환을 수행하지 않습니다.

이 응용 프로그램은 다음과 같은 기능을 제공합니다.

이 둘의 주요 차이점은 지정된 형식과 식의 런타임 유형이 동일한 경우에만 다이렉트캐스트가 작동한다는 것입니다. 이 차이는 개체 유형에서 값 유형으로 변환하거나 값을 언박싱하는 경우에만 나타납니다.

예를 들어,다음 다이렉트캐스트 작업은 개체의 박스형 형식이 정수가 아니기 때문에 실패합니다.:

런타임 오류를 발생시킵니다.’런타임 오류가 발생하지 않습니다.

반면에 이 예제의 다이렉트캐스트 작업은 성공합니다:

이 문제를 해결하는 데 도움이되는 몇 가지 방법이 있습니다.이 연산자는 개체에서 값 형식으로 변환하거나 언박싱할 때 다이렉트캐스트 연산자보다 성능이 더 좋습니다. 비주얼 베이직.넷 컴파일러는 다이렉트 캐스트를 위해 네 줄의 일리노이 코드를 생성합니다. 변환 메서드에 대한 호출을 생성합니다. 이 메서드는 다른 메서드를 호출합니다. 성능이 중요한 코드에서는 차이가 상당 할 수 있습니다. 그러나 강제 변환이 필요한 경우 형식 작업을 사용하거나 수동으로 강제 변환을 수행해야 합니다.

예:

객체=1 로 희미한 오.이 경우 런타임 형식(1994)은 런타임 형식(1994)으로 캐스팅됩니다.이 형식(1994)은 런타임 형식(1994)으로 캐스팅됩니다.’

결론

객체 유형에서 값 유형으로 유형을 캐스팅하거나 언 박싱 할 때 먼저 유형 강제 변환이 필요한지 여부를 결정해야합니다. 강제 변환이 필요하지 않은 경우(즉,값의 박스형 형식이 캐스트 표현식에 지정된 형식과 같음)다이렉트 캐스트 표현식을 사용하여 응용 프로그램 성능을 향상시킵니다.

이 팁과 더 총 닷넷 분석기 당신을 위해 감지! 자세한 내용은 분석기를 참조하십시오.