3 Stimmen

Gleiche Eigenschaft, unterschiedliche Typen

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.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X