В приведенном ниже коде «где T: WsgTypes.RouteRestriction», я могу добавить несколько классов, так что T может быть только те несколько типов классов, которые я заинтересован вОбобщения 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();
}
Это не то, для чего были разработаны общие методы. Если у вас есть только несколько возможностей, тогда не используйте общий метод в первую очередь. Если существует только три возможных типа, напишите три разных метода. Дженерики были разработаны для тех случаев, когда тип действительно общий - где это может быть любое неограниченное количество типов. –