假设您有一个具有 Uri 属性的类。有没有办法让该属性同时接受字符串值和 Uri?你会如何建造它?
我希望能够执行以下操作之一,但都不支持(使用 VB,因为它允许您在 Set 声明中为第二个指定类型):
Class MyClass
Private _link As Uri
'Option 1: overloaded property
Public Property Link1 As Uri
Get
return _link
End Get
Set(ByVal value As Uri)
_link = value
End Set
End Property
Public Property link1 As String
Get
return _link.ToString()
End Get
Set(Byval value As String)
_link = new Uri(value)
End Set
End Property
' Option 2: Overloaded setter
Public Property link2 As Uri
Get
return _link
End Get
Set(Byval value As Uri)
_link = value
End Set
Set(Byval value As String)
_link = new Uri(value)
End Set
End Class
鉴于这些可能不会很快得到支持,您还会如何处理呢?我正在寻找比提供附加.SetLink(string value)
方法更好的东西,而且我仍在使用 .Net2.0(尽管如果以后的版本对此有很好的功能,我想听听)。
我可以想到您可能希望提供这种重载的其他场景:例如,具有 SqlConnection 成员的类允许您设置新连接或新连接字符串。