hoffe ich kann dieses Thema "reanimieren". Ich stieß auf ähnliches Problem, außer dass ich eine geteilte Eigenschaft benötige, um den Kindnamen zurückzugeben ... So funktioniert das Ich ... Konstrukt nicht. Ich weiß, das ist als schlechtes Design, aber ich hatte keine bessere Idee - außer einer Reihe von wiederholten Code ... Mein Ziel ist sehr ähnlich zu den OP's ... Wie bekomme ich das "A" in die Basisklasse 'XString Eigenschaft OHNE Instancinating ...? (xd ist ein XMLDocument ...)
Public MustInherit Class MinMax
Protected Shared Property XString As String = ???
Public Shared Function isValid(value As String) As Boolean
Return min <= value <= max
End Function
Private Shared ReadOnly Property min As Double
Get
Return xd.SelectSingleNode(String.Format("FOEB/Restrictions/{0}", XString)).InnerText.Split("..")(0)
End Get
End Property
Private Shared ReadOnly Property max As Double
Get
Return xd.SelectSingleNode(String.Format("FOEB/Restrictions/{0}", XString)).InnerText.Split("..")(1)
End Get
End Property
End Class
Klasse Verbrauch:
Public Class Restrictions
Public Class A
Inherits MinMax
End Class
Public Class B
Inherits MinMax
End Class
End Class
dim isOk as Boolean= Restrictions.A.isValid("10")
Die correstonding XML
<?xml version="1.0" encoding="utf-8" ?>
<FOEB>
<Restrictions>
<A>1..21</A>
</Restrictions>
</FOEB>
So ist der Rückgabewert sollte
xstring TRUE ist geschützt, weil ich versuchte, in dem Kind zu überschatten - kein Glück, also ist es wirklich ly nicht relevant auf diese Weise
Nur eine Abfrage, ich habe immer gedacht, dass die Basis, die abgeleiteten Klassen kennen zu lernen, immer schlechte Design-Praxis war. Ist das wirklich die einzige Möglichkeit, dies zu tun? – bioskope
Ich wusste, dass das kommen würde, und ich bin mir sicher, dass es einen besseren Weg gibt, dies zu tun. Ich verwende es, während ich mit meinem eigenen kleinen ORM-Tool herumspiele, und ich mache einige Annahmen über die Datenbank basierend auf dem Namen der abgeleiteten Klasse. – Kjensen