為何使用它

Option Strict On 防止發生三件事:

1.隱式縮小轉換錯誤

它可以防止你在沒有顯式強制轉換的情況下分配給精度較低或容量較小的變數 (縮小轉換)。這樣做會導致資料丟失。

Dim d As Double = 123.4
Dim s As Single = d 'This line does not compile with Option Strict On

2.晚期繫結呼叫

不允許延遲繫結。這是為了防止編譯錯誤,但在執行時失敗

Dim obj As New Object
obj.Foo 'This line does not compile with Option Strict On

3.隱式物件型別錯誤

這可以防止變數被推斷為 Object,實際上它們應該被宣告為一個型別

Dim something = Nothing. 'This line does not compile with Option Strict On

結論

除非你需要進行後期繫結,否則應始終使用 Option Strict On,因為它會導致上述錯誤生成編譯時錯誤而不是執行時異常。

如果你必須做晚期繫結,你也可以

  • 將所有後期繫結呼叫包裝到一個類/模組中,並在程式碼檔案的頂部使用 Option Strict Off(這是首選方法,因為它可以降低其他檔案中拼寫錯誤的可能性),或者
  • 指定 Late Binding 不會導致編譯失敗(Project Properties > Compile Tab > Warning Configuration