J'ai un problème et pas sûr de savoir comment le résoudre ..Héritant d'une classe qui est basée sur une classe générique, mais a besoin du type de classe de la classe dérivée
Considérez la classe:
public class BaseClass<T>
{
public T PreviousInstance { get; set; }
}
maintenant ma classe de données secondaires:
public class DataClass : BaseClass<DataClass>
{
public bool ABoolProperty { get; set; }
}
donc j'ai DataClass (qui est peuplée par un pont LINQ à WMI quand un objet change WMI) lorsque peuplé d'un événement de changement fournit l'une des données modifiées d les données précédentes avant la modification qui fonctionne très bien. J'ai maintenant une troisième classe:
public class DerivedDataClass : DataClass
{
public string AStringProperty { get; set; }
}
Mon problème est que DerviedDataClass.PreviousInstance est encore de DataClass de type, ce qui signifie que je reçois l'habitude des propriétés PreviousInstance qui sont déclarés dans DerivedDataClass.
J'ai pensé à DataClass-à-dire déclarant
public class DataClass<T> : BaseClass<T>
qui permettrait aux propriétés de DerivedDataClass soient disponibles dans PreviousInstance. Cependant je dois encore être en mesure d'utiliser DataClass sur lui-même sans avoir à déclarer comme:
DataClass<DataClass<object>>
juste pour faire fonctionner ce que je voudrais vraiment est d'avoir une version générique de la classe et une Version non générique, sans avoir à déclarer 2 classes séparées avec les mêmes propriétés.
Alors, des idées? :)
Quel besoin avez-vous cela? –
voir aussi: http://blogs.msdn.com/b/ericlippert/archive/2011/02/03/curiouser-and-curiouser.aspx –