J'ai une classe de collection générique d'objet métier qui contient des objets métier:Comment accéder et utiliser les paramètres de type générique en tant que type normal en C#?
public abstract class BusinessObjectCollection<T> : ICollection<T>
where T : BusinessObject
Je veux écrire une méthode sur ma classe de collection qui renvoie le T et une méthode type qui retourne un objet nouvellement instancié de type
En C++, ce serait là que vous déclareriez simplement un typedef value_type T;
et que vous utiliseriez BusinessObjectCollection :: value_type mais je ne trouverais pas d'équivalent en C#.
Des suggestions?
EDIT: Un proche parallèle à la typedef je pense est la méthode:
Type GetGenericParameter() {
return typeof(T);
}
En fait, cela utilise aussi la réflexion. C# émet un appel à Activator.CreateInstance. – Josh
Cela est très vrai que le * compilateur * émet des appels à 'Activator.CreateInstance'. Je disais simplement que le PO n'aurait pas besoin d'utiliser l'API de réflexion directement, pas que la réflexion n'était pas du tout utilisée sous les couvertures. –