我发现的大多数搜索结果都与我要找的相反,所以这是我的问题:
我正在尝试将系统类型转换为我自己的自定义类型,但正如我所提到的,我的搜索结果并不有效,并且给我的结果与我正在寻找的相反。
假设我有一个“mystringgoeshere”字符串和一个类似这样的类:
Class MyStringType
Dim str As String
End Class
Dim s As MyStringType = "mystringgoeshere"
我收到此错误{'String'类型的值无法转换为'Project1.MyStringType'。}
我还没有任何代码,因为我不知道如何实现它,但本质上我想做的是使用代码中的方法设置“s”对象的“str”字符串挡在上面。我试过使用“new(data as String)”子例程,但它不适用于我正在尝试的方法。
有什么想法吗?谢谢~
最佳答案
看着这个VBCity Article on creating Custom Types它正在使用 Widening运营商。
来自上一个链接:
Widening conversions always succeed at run time and never incur data loss. Examples are Single to Double, Char to String, and a derived type to its base type.
所以尝试这样的事情
Public Class Form1
Public Sub New()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Dim s As MyStringType = "mystringgoeshere"
Dim s1 As MyStringType = "Hello"
Dim s2 As MyStringType = s1 + s
End Sub
End Class
Class MyStringType
Private _string As String
Private Sub New(ByVal value As String)
Me._string = value
End Sub
Public Shared Widening Operator CType(ByVal value As String) As MyStringType
Return New MyStringType(value)
End Operator
Public Overrides Function ToString() As String
Return _string
End Function
Public Shared Operator +(ByVal s1 As MyStringType, s2 As MyStringType) As MyStringType
Dim temp As String = s1._string + s2._string
Return New MyStringType(temp)
End Operator
End Class
关于vb.net - 在 Vb.net 中将字符串转换为自定义类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13263524/