我正在处理一个API,该API以以下格式响应我的POST请求:
Base64String:AnotherBase64String:Another:Etc
因此,我有一些Functions
和Extensions
会采用以下格式接收/返回字符串:
事情变得非常混乱,从某种意义上来说,当一个函数将String
作为输入时,需要花费一些时间(阅读Function doc)来检查String
是否应为字符串,或Base64字符串等。Strings
Extensions
的智能感知也受到入侵。
我正在考虑派生两个新的Types
,以便使事情变得更容易。
String
是NotInheritable
,因此我被鼓励使用以下内容:
Class Base64String
Dim str As String
End Class
可以吗?看起来很简单(而且很漂亮),我很紧张。
PS:我的Base64字符串将不需要任何操作,例如串联。唯一需要的扩展名将是定制的。但是,如果有办法获取字符串的本机扩展名,我很想知道(出于好奇)。
答案 0 :(得分:0)
Mark Hall的帖子在his post中提到了Widening,这正是我所需要的:
Public Class Base64String
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 Base64String
Return New Base64String(value)
End Operator
Public Overrides Function ToString() As String
Return _String
End Function
Public Shared Operator &(ByVal s1 As Base64String, s2 As Base64String) As Base64String
Dim temp As String = s1._String & s2._String
Return New Base64String(temp)
End Operator
End Class
要这样使用:
Dim MyString As Base64String = "abcd"
Console.WriteLine(MyString)