您已嘗試將類型轉換為可能無法包含值的另一種類型,例如 a Long 到 a Integer,而類型檢查參數 (Option Strict 陳述式) 設定為 On。
這種類型的轉換稱為 縮小轉換,它可能會在執行時期失敗。 因此,不 Option Strict On 允許隱含縮小轉換。
錯誤 ID: BC30512
若要更正此錯誤
判斷是否存在從 到 的任何
<type2>類型的轉換。<type1>如果兩者都是 Visual Basic 基本類型,或兩者都是類別的實例,您通常可以參閱 Widening and Narrowing Conversions 中的表格來進行此判斷。如果只有 到
<type1>的<type2>縮小轉換存在,則應使用明確轉換。 如果轉換失敗, CType 函式 和 DirectCast 運算子 關鍵字會擲回執行階段例外狀況。 TryCast 運算子關鍵字僅適用於參考類型,並在轉換失敗時傳回 Nothing。如果存在縮小轉換,且您的程式可以容忍執行時期失敗,或您確信執行時期失敗是不可能的,則可以在原始碼的開頭指定
Option Strict Off。 但您仍然應該將轉換包含在 Try...捉。。。Finally Statement 區塊,以避免意外結果或程式提前終止。如果沒有從
<type1>到 的<type2>轉換存在,您必須重新評估程式邏輯。 您也許可以編寫程式碼,將值<type2>指派給 對應於 的<type1>預期值。如果不存在從
<type1>到 的<type2>轉換,且其中一個類型是您已定義的類別或結構,則您可以定義從該類型到另一個類型或從另一個類型的轉換運算子。 如需詳細資訊,請參閱 如何:定義轉換運算子。在所有情況下,作為一般準則,您應該避免使用縮小轉換,除非您可以將失敗捕獲到區塊中
Catch並有效地處理它們。