gpt4 book ai didi

.net - 相同的属性,不同的类型

转载 作者:行者123 更新时间:2023-12-01 09:40:37 26 4
gpt4 key购买 nike

假设您有一个具有 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 成员的类允许您设置新连接或新连接字符串。

最佳答案

或者,您当然可以放弃重载,只需适本地命名属性:

Public WriteOnly Property UriString() As String
Set(ByVal value As String)
m_Uri = new Uri(value)
End Set
End Property

当然你不必做这个 WriteOnly 但它看起来很合适。

关于.net - 相同的属性,不同的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/162879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com