Angenommen, Sie haben eine Klasse mit einer Uri-Eigenschaft. Gibt es eine Möglichkeit, diese Eigenschaft zu erhalten, um sowohl einen String-Wert als auch einen Uri zu akzeptieren? Wie würden Sie das machen?
Ich möchte in der Lage sein, etwas wie eine der folgenden zu tun, aber weder werden unterstützt (mit VB, da es Sie Typ in der Set-Deklaration für die 2. angeben können):
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
Da diese wahrscheinlich nicht mehr unterstützt werden, wie würden Sie das sonst handhaben? Ich suche nach etwas Schönerem, als nur eine zusätzliche .SetLink(string value)
Methode, und ich arbeite immer noch mit .Net2.0 (falls spätere Versionen eine nette Funktion dafür haben, würde ich gerne davon hören).
Ich kann mir andere Szenarien vorstellen, in denen Sie diese Art von Überladung bereitstellen möchten: eine Klasse mit einem SqlConnection-Mitglied, mit dem Sie entweder eine neue Verbindung oder eine neue Verbindungszeichenfolge festlegen können, zum Beispiel.