代碼庫,我在那裏工作的有一個具有如何將對象轉換爲可空類型的struct?
Public Sub SetDropDownValue(Of T As Structure)(ByVal target As ListControl, ByVal value As Nullable(Of T))
我寫的方法傳遞Object類型的參數簽名的方法。
如何將對象轉換爲可傳入SetDropDownValue
方法的東西?
代碼庫,我在那裏工作的有一個具有如何將對象轉換爲可空類型的struct?
Public Sub SetDropDownValue(Of T As Structure)(ByVal target As ListControl, ByVal value As Nullable(Of T))
我寫的方法傳遞Object類型的參數簽名的方法。
如何將對象轉換爲可傳入SetDropDownValue
方法的東西?
不,您將無法將參考類型轉換爲值類型(這正是Structure
約束所代表的意思)。 CLR允許你將一個值類型作爲參考類型(這被稱爲boxing),但是這兩種不同類型的實現(和語義)之間的區別的性質使得反過來變得不可能。
唯一能想到的就是創建一個值類型,它將對象的引用保存爲字段,但也許這個問題可能暗示您正在以錯誤的方式處理整個事件。
如果你知道T
這應該工作:
something.SetDropDownValue(target, DirectCast(value, Nullable(Of T)))
有關詳細信息,請參閱本article。
如果您不知道類型T
,您遇到了麻煩,並且必須在運行時開始反思。這是複雜的,危險的,並且具有可怕的性能。
我開始覺得代碼變得有點臭了。時間重新思考。 – ilivewithian 2009-05-20 11:22:03