다음을 통해 공유


Option Strict On은 'type1>'에서 '<type2>'로의 암시적 변환을< 허용하지 않습니다.

형식 검사 스위치(Option Strict Statement)On가 설정된 동안 형식을 값을 포함 LongInteger할 수 없는 다른 형식으로 변환하려고 했습니다.

이러한 유형의 변환을 축소 변환이라고 하며 런타임에 실패할 수 있습니다. 이러한 이유로 Option Strict On 암시적 축소 변환을 허용하지 않습니다.

오류 ID: BC30512

이 오류를 해결하려면

  1. 형식의 변환이 .로 <type1><type2>의 변환인지 여부를 확인합니다. 둘 다 Visual Basic 기본 형식이거나 둘 다 클래스의 인스턴스인 경우 일반적으로 확대 및 축소 변환의 표를 참조하여 이 결정을 내릴 수 있습니다.

  2. 축소 변환만 있는 <type1> 경우 명시적 캐스팅을 <type2>사용해야 합니다. CType 함수DirectCast 연산자 키워드는 변환이 실패할 경우 런타임 예외를 throw합니다. TryCast 연산자 키워드는 참조 형식에만 적용되며 변환에 실패하면 Nothing을 반환합니다.

  3. 축소 변환이 존재하고 프로그램이 런타임 오류를 허용할 수 있거나 런타임 실패가 가능하지 않다고 확신하는 경우 소스 코드의 시작 부분에서 지정할 Option Strict Off 수 있습니다. 그러나 여전히 시도에서 변환을 묶어야 합니다... 잡기... 마지막으로 예기치 않은 결과 또는 프로그램의 조기 종료를 방지하기 위한 문 블록입니다.

  4. 변환이 <type1><type2>없는 경우 프로그램 논리를 다시 평가해야 합니다. 예상 <type1>값에 해당하는 값을 할당할 <type2> 수 있는 코드를 작성할 수 있습니다.

  5. 변환이 존재하지 <type1><type2> 않고 형식 중 하나가 정의한 클래스 또는 구조체인 경우 해당 형식에서 다른 형식으로 또는 다른 형식으로 변환 연산자를 정의할 수 있습니다. 자세한 내용은 방법: 변환 연산자 정의를 참조하세요.

  6. 모든 경우 및 일반적인 지침에서는 블록에서 Catch 오류를 트래핑하고 효과적으로 처리할 수 없다면 축소 변환을 사용하지 않아야 합니다.

참고하십시오