共用方式為


選項 Strict On 不允許從 '<type1>' 到 '<type2>' 的隱含轉換

您已嘗試將類型轉換為可能無法包含值的另一種類型,例如 a Long 到 a Integer,而類型檢查參數 (Option Strict 陳述式) 設定為 On

這種類型的轉換稱為 縮小轉換,它可能會在執行時期失敗。 因此,不 Option Strict On 允許隱含縮小轉換。

錯誤 ID: BC30512

若要更正此錯誤

  1. 判斷是否存在從 到 的任何<type2>類型的轉換。<type1> 如果兩者都是 Visual Basic 基本類型,或兩者都是類別的實例,您通常可以參閱 Widening and Narrowing Conversions 中的表格來進行此判斷。

  2. 如果只有 到 <type1><type2>縮小轉換存在,則應使用明確轉換。 如果轉換失敗, CType 函式DirectCast 運算子 關鍵字會擲回執行階段例外狀況。 TryCast 運算子關鍵字僅適用於參考類型,並在轉換失敗時傳回 Nothing

  3. 如果存在縮小轉換,且您的程式可以容忍執行時期失敗,或您確信執行時期失敗是不可能的,則可以在原始碼的開頭指定 Option Strict Off 。 但您仍然應該將轉換包含在 Try...捉。。。Finally Statement 區塊,以避免意外結果或程式提前終止。

  4. 如果沒有從 <type1> 到 的 <type2>轉換存在,您必須重新評估程式邏輯。 您也許可以編寫程式碼,將值 <type2> 指派給 對應於 的 <type1>預期值。

  5. 如果不存在從 <type1> 到 的 <type2> 轉換,且其中一個類型是您已定義的類別或結構,則您可以定義從該類型到另一個類型或從另一個類型的轉換運算子。 如需詳細資訊,請參閱 如何:定義轉換運算子

  6. 在所有情況下,作為一般準則,您應該避免使用縮小轉換,除非您可以將失敗捕獲到區塊中 Catch 並有效地處理它們。

另請參閱