Option Strict On 不允許在方法 '<methodname>' 和委派 '<delegatename>' 之間縮小隱含型別轉換

更新:2007 年 11 月

使用 Option Strict 時,您無法縮小委派中參數之資料型別,以及指派給該委派型別之變數的函式或 Sub 相對應參數之間的轉換。例如,函式委派 Del 的某個參數型別為 Integer,而函式 Conversion1、Conversion2 和 Conversion3 的某個參數則有不同的數值型別。

Delegate Function Del(ByVal p As Integer) As String

Function Conversion1(ByVal n As Integer) As String
    Return "Valid"
End Function

Function Conversion2(ByVal n As Long) As String
    Return "Valid"
End Function

Function Conversion3(ByVal n As Short) As String
    Return "Not valid"
End Function

由於 Integer 會擴展轉換為 Integer 和 Long,因此以下是有效的指派。

' Valid.
Dim funDel1 As Del = AddressOf Conversion1
Dim funDel2 As Del = AddressOf Conversion2

從 Integer 到 Short 的轉換屬於縮小轉換。因此,以下是無效的指派。

' Not valid.
Dim funDel3 As Del = AddressOf Conversion3

錯誤 ID:BC36663

若要更正這個錯誤

  • 變更委派或方法中參數的資料型別,讓擴展關聯性因此存在。

請參閱

概念

寬鬆委派轉換

擴展和縮小轉換

委派和 AddressOf 運算子

其他資源

Visual Basic 中的委派