希望私はこのトピックを "再できます"。私は子供の名前を返すために共有プロパティが必要であることを除いて、同様の問題に遭遇した。だから私...コンストラクトは動作しません。 私はこれが悪いデザインだと思っていますが、繰り返しコードの束を除いて、より良いアイデアはありませんでした... 私の目標はOPのものと非常に似ています... "A"をベースクラス'instancinatigなしのXStringプロパティ...?
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
クラスの使用法(XDはXMLDocumentを...である):
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>
ので、戻り値はXSTRINGがあるTRUE
する必要があります私は子供の中でシャドー/オーバーライドしようとしたので、保護されていません - 運がないので、実際のこのように関係はありません
出典
2015-03-29 09:14:41
dba
私はいつもその派生クラスを知っているベースは常に悪いデザインの練習であると考えてきました。あなたがこれをしたいと思う唯一の方法は本当ですか? – bioskope
私はそれが起こることを知っていました、そして、私はこれを行うためのより良い方法があると確信しています。私は自分の小さなORMツールで遊んでいる間にそれを使用しています。派生クラスの名前に基づいてデータベースについていくつかの仮定をしています。 – Kjensen