打开类型变量

Fly*_*179 5 c# switch-statement c#-7.0

这感觉它应该很容易,但我只是看不到让它工作的方法.

Type propType = propertyInfo.PropertyType;
switch (propType)
{
  case typeof(byte): // Can't do this, 'A constant value is expected'
    // Do something
    break;
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过

private const byteType = typeof(byte);
Run Code Online (Sandbox Code Playgroud)

然后打开它,但是由于同样的原因,这行代码无法编译.

所以,问题是:如何打开实例Type

Pat*_*man 3

好吧,我最初的答案是错误的。你不能在类型开关中做到这一点(不使用when所指出的,在我看来,这对于这种用途来说是可怕的)。问题是 aType不是常量,因此不能在 switch 中使用它。

我错了,因为您没有使用实际值,而是使用Type实例。你必须继续使用if语句。