希望我能「復活」這個話題。我遇到了類似的問題,除了我需要一個共享屬性來返回子名稱...所以我......構造不起作用。 我知道,這被認爲是不好的設計,但我沒有更好的主意 - 除了一堆重複的代碼... 我的目標是非常類似於OP的一個...如何獲得「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")
的correstonding XML
<?xml version="1.0" encoding="utf-8" ?>
<FOEB>
<Restrictions>
<A>1..21</A>
</Restrictions>
</FOEB>
因此,返回值應爲TRUE
Xstring是受保護,因爲我試圖在孩子身上隱藏/重寫 - 沒有運氣,所以這是真實的與此無關
來源
2015-03-29 09:14:41
dba
只是一個查詢,我一直認爲基礎知道它的派生類總是不好的設計實踐。那麼這真的是你希望這樣做的唯一方式嗎? – bioskope 2009-04-17 22:43:12
我知道會出現,我相信有這樣做的更好方法。我在使用自己的小ORM工具時使用它,並且根據派生類的名稱對數據庫做出了一些假設。 – Kjensen 2009-04-18 10:23:01