Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podjęto próbę przekonwertowania typu na inny typ, który może nie być w stanie zawierać wartości, na przykład LongIntegerna wartość , podczas gdy przełącznik sprawdzania typów (opcja ściślej instrukcji) jest ustawiony na Onwartość .
Ten typ konwersji jest nazywany konwersją zawężającą i może zakończyć się niepowodzeniem w czasie wykonywania. Z tego powodu Option Strict On nie zezwala na niejawne konwersje zawężania.
Identyfikator błędu: BC30512
Aby naprawić ten błąd
Ustal, czy istnieje konwersja dowolnego typu z
<type1>na<type2>. Jeśli oba są typami podstawowymi języka Visual Basic lub oba są wystąpieniami klas, zwykle można to określić, korzystając z tabeli w temacie Rozszerzanie i zawężanie konwersji.Jeśli istnieje tylko konwersja zawężania z
<type1>do<type2>, należy użyć jawnego rzutowania. Słowa kluczowe funkcji CType i operatora directcast zgłaszają wyjątek czasu wykonywania, jeśli konwersja nie powiedzie się. Słowo kluczowe TryCast Operator dotyczy tylko typów odwołań i zwraca wartość Nic , jeśli konwersja nie powiedzie się.Jeśli istnieje konwersja zawężania i program może tolerować awarię czasu wykonywania lub masz pewność, że niepowodzenie w czasie wykonywania nie jest możliwe, możesz określić
Option Strict Offna początku kodu źródłowego. Ale nadal należy ująć konwersję w try... Łapać... Na koniec blok instrukcji , aby uniknąć nieoczekiwanych wyników lub wczesnego zakończenia programu.Jeśli nie istnieje konwersja z
<type1>do<type2>, musisz ponownie ocenić logikę programu. Może być możliwe napisanie kodu, który może przypisywać wartości do<type2>odpowiadających przewidywanym wartościom<type1>.Jeśli żadna konwersja nie istnieje od
<type1>do<type2>i jeden z typów jest zdefiniowaną klasą lub strukturą, może być możliwe zdefiniowanie operatora konwersji z tego typu do lub z innego typu. Aby uzyskać więcej informacji, zobacz How to: Define a Conversion Operator (Instrukcje: definiowanie operatora konwersji).We wszystkich przypadkach i jako ogólne wytyczne należy unikać używania konwersji zawężania, chyba że można wychwytywać błędy w
Catchbloku i skutecznie radzić sobie z nimi.