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
其他信息:指定的转换无效。