В C # 7.1 ниже действительный код:
object o = new object();
switch (o)
{
case CustomerRequestBase c:
//do something
break;
}
Однако я хочу использовать инструкцию переключения шаблонов в следующем сценарии:
public T Process<T>(object message, IMessageFormatter messageFormatter)
where T : class, IStandardMessageModel, new()
{
switch (T)
{
case CustomerRequestBase c:
//do something
break;
}
}
Среда IDE дает мнеошибка "'T' является типом, который недопустим в данном контексте". Есть ли элегантный способ включить тип универсального параметра?Я понял, что в моем первом примере вы включаете объект, а во втором я бы хотел включить тип T. Каков наилучший подход для этого?