надеюсь, что смогу "реанимировать" эту тему. Я столкнулся с подобной проблемой, за исключением того, что мне нужно общее свойство для возврата дочернего имени ... Так что конструкция Me ... не будет работать.
Я знаю, это считается плохим дизайном, но у меня не было лучшей идеи - кроме множества повторяющихся кодов ...
Моя цель очень похожа на цель ОП ... Как получить "A" в свойстве XString базового класса БЕЗ instancinatig ...?
(xd - это 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
Использование класса:
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")
Соответствующий XML
<?xml version="1.0" encoding="utf-8" ?>
<FOEB>
<Restrictions>
<A>1..21</A>
</Restrictions>
</FOEB>
Таким образом, возвращаемое значение должно быть ИСТИНА
Xstring защищен, потому что я пытался скрыть / переопределить в дочернем элементе - не повезло, так что на самом деле это не имеет отношения