Вы не можете.case
операторы для switch
должны быть константами времени компиляции, типа sbyte, byte, short, ushort, int, uint, long, ulong, char, string или enum-type (включая неявные преобразования),и это не то, что вы имеете с Type
объектами.
Что является законным:
switch (foo)
{
case 42:
// code
break;
}
Что не является законным:
int value = GetValue(); // not a verifiable compile-time constant
switch (foo)
{
case value:
// code
break;
}