Никакой существующий вопрос не имеет ответа на этот вопрос.
В С# 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;
}