Im folgenden Code "where T: WsgTypes.RouteRestriction", kann ich mehrere Klassen hinzufügen, so dass T nur die wenigen Klassen Typen sein, die ich interessiert bin vonGenerics C# .net
public static T GetDetails<T>(string code) where T : WsgTypes.RouteRestriction
{
T details;
if (typeof(T) == typeof(WsgTypes.TicketType))
{
details = TicketTypeDetail.GetDetails(code) as T;
}
else if (typeof(T) == typeof(WsgTypes.RouteRestriction))
{
details = RouteRestrictionDetail.GetDetails(code) as T;
}
else
{
throw new NotSupportedException("");
}
return details;
throw new NotImplementedException();
}
Dies ist nicht, was generische Methoden entwickelt wurden. Wenn Sie nur ein paar Möglichkeiten haben, dann verwenden Sie keine generische Methode an erster Stelle. Wenn es nur drei mögliche Typen gibt, schreiben Sie drei verschiedene Methoden. Generics wurden für die Fälle entwickelt, in denen der Typ wirklich generisch ist - wo er beliebig viele Typen haben kann. –