我有一個屬性Cmd的定義,當我嘗試使用這樣的:無法訪問索引的屬性在VB.Net
y = x.Cmd("abc")
我得到:
重載解析失敗,因爲沒有可訪問的'參數'接受這個 號碼的論據。
然而,這個工程:
y = (x.Cmd)("abc")
我可以更改屬性定義,使用戶不需要括號?
我有一個屬性Cmd的定義,當我嘗試使用這樣的:無法訪問索引的屬性在VB.Net
y = x.Cmd("abc")
我得到:
重載解析失敗,因爲沒有可訪問的'參數'接受這個 號碼的論據。
然而,這個工程:
y = (x.Cmd)("abc")
我可以更改屬性定義,使用戶不需要括號?
我可以改變我的財產定義,以便 用戶不需要 括號?
不是。問題的關鍵在於默認屬性(Parameters
)不是索引屬性,而是返回ADODB.Parameters
對象。雖然ADODB.Parameters
已被索引Item
屬性,但它是一個太深的水平。由於您無法更改ADODB
,因此您可以考慮添加輔助方法。然後,您可以使用此方法代替您的財產。
Public Function CmdParameter(ByVal parameterName As String) As ADODB.Parameter
Return Cmd.Parameters(parameterName)
End Function
除了二進制編碼器的解決方案,我建議你另一個。如果你想用你的代碼是這樣的:
y = x.Cmd("abc")
你可以改變你的Cmd的屬性是這樣的:
Public ReadOnly Property Cmd(ByVal parameterName As String) As ADODB.Command
Get
Return _cmd.Parameters(parameterName)
End Get
End Property
希望它能幫助!
該類是否從另一個類繼承?有更多索引器嗎? – 2010-02-25 23:11:38