kontrol eder. Ne yaklaşım bu çözmek için iyidir merak ettik ve aşağıdaki seçenekler de düşünüyordum:Genişleyen işlevselliği Şu anda bazı ek alanları ile özelleştirilmiş .NET çeşit oluşturmak için gereken bir alet çalışıyorum
Seçenek A: - Her kontrol için türetilmiş bir sınıf oluşturun (diyelim CLabel, CGroupBox ...) her sınıftaki yeni alanları tanımlarım. Bu kötü mantainability anlamına gelecektir ama ile kullanımı kolay olurdu.
Örnek:
class CLabel: Label
{
public List<Control> RelatedControls {get; set;}
public String textHint;
// more stuff...
public CLabel()
{}
}
B seçeneği: - Bu seçenek, her kontrol türetilmiş bir sınıf oluşturma, ancak gerçek etiket, GroupBox, vb kontrolleri kullanarak ve içine alıcı bir sınıf oluşturulmadığı anlamına gelir tüm "ekstra" özellikler. Bu ekstra özellikler nesnesi, Control.Tag
özelliğinde başvurulan. Tag
özelliği içinde karmaşık nesnenin bir tür referans bana biraz bok hissediyor çünkü bu bir hakkında şüphelerim var, ama bu daha iyi mantainability anlamına geleceğini ve ayrıca tabii subclassing gerek kontrol eder.
Örnek:
Label lbl = new Label();
lbl.Tag = new ControlDescription();
Seçenek C: - Bu tip ControlDescription alanı ekler örnek CLabel için, Seçenek A ve B Sadece özel denetimi oluşturma kombinasyonu çeşit sahip anlamına gelecektir Etiket kontrolüne. Bu şekilde kapsülleme ve yönetilebilirliği sağlıyoruz, ancak Tag
şeyinden sakınıyoruz.
Oraya daha iyi birçok seçenek vardır eminim. Muhtemelen sadece polimorfizm kullanıyorum - hala problemlerim var - özel kontrol sınıfları alınabilir. Bu seçeneklerden hangisinin en iyisi olduğunu düşünüyorsunuz? Bunların hepsinin daha iyi olabileceğini düşünüyor musunuz?
Teşekkürler, buna da bir göz atacağım. –