我如何获得类型的类型?

JL.*_*JL. 0 c#

给出以下方法:

public dynamic ConvertIt(dynamic source, Type dest)
      {
         return Convert.ChangeType(source, dest);
      }
Run Code Online (Sandbox Code Playgroud)

如何获得dest的实际原始类型?

我希望有类似的东西:

if (dest is bool)
Run Code Online (Sandbox Code Playgroud)

但是我得到一个设计时间警告,类型条件永远不会满足,这很明显因为dest总是Type.

我希望能够得到一个类型(原语)的枚举,一个dest的属性.

Jon*_*eet 5

您可以将typeof运算符与已知类型一起使用,并将其与dest类型进行比较:

if (dest == typeof(bool))
Run Code Online (Sandbox Code Playgroud)

(此处的引用相等性很好,因为每种类型只有一个Type表示它的对象.)

目前尚不清楚你的意思是"获取类型(基元)的枚举,dest的属性" - 但如果你想检查是否dest是一堆类型之一,你可以创建一个List<Type>HashSet<Type>只是使用acceptableTypes.Contains(dest).