1
我的需求是獲取一個對象的內容並將其強制爲不同的類型。實際上,內容是一個指向本地C++類的指針,而dot net對象是允許dot net訪問C++的包裝器。因此,相同的C++對象可能有不同的包裝,具體取決於您正在訪問的繼承層次結構中的哪個類。而這些包裝沒有繼承關係。用戶定義的值類型具有類似於本地值類型的類型轉換
在VB.net中我可以寫。
Dim s1 As Short = 13
Dim l1 As Long = s1
現在我想寫點什麼,
Dim v1 As ValueTest1 = New ValueTest1(13)
Dim v2 As ValueTest2 = v1
凡ValueTest1和ValueTest2被定義爲C++/CLI值類型。所以我在ValueTest1上有一個構造函數,它需要一個ValueTest2,但編譯器仍然不支持從ValueTest1到ValueTest2的類型強制轉換。
令人沮喪。
任何建議如何使它做隱式轉換?
OK使用運營商的工作,但有更多的問題,使用對象時,
Dim v1 As ValueTest1 = New ValueTest1(13)
Dim v2 As ValueTest2 = v1 ' OK
Dim o1 As Object = v1
Dim v3 As ValueTest2 = o1 ' fails with the exception below
「」類型的第一次機會異常出現在test_xxxxx.dll
其他信息:指定的轉換無效。