Никакой существующий вопрос не имеет ответа на этот вопрос.
В С# 7 можно напрямую переключиться на System.Type?
Когда я пытаюсь:
switch (Type)
{
case typeof(int):
break;
}
он говорит мне, что typeof(int) должно быть постоянным выражением.
Есть ли какой-то синтаксический сахар, который позволяет мне избегать case nameof(int): и напрямую сравнивать типы для равенства? nameof(T) в аргументе case не совсем хорошо, потому что пространства имен. Поэтому, хотя столкновение имен, вероятно, не применимо для int, оно применимо для других сравнений.
Другими словами, я пытаюсь быть более прямым, чем это:
switch (Type.Name)
{
case nameof(Int32):
case nameof(Decimal):
this.value = Math.Max(Math.Min(0, Maximum), Minimum); // enforce minimum
break;
}
