给出以下方法:
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的属性.
您可以将typeof运算符与已知类型一起使用,并将其与dest类型进行比较:
if (dest == typeof(bool))
Run Code Online (Sandbox Code Playgroud)
(此处的引用相等性很好,因为每种类型只有一个Type表示它的对象.)
目前尚不清楚你的意思是"获取类型(基元)的枚举,dest的属性" - 但如果你想检查是否dest是一堆类型之一,你可以创建一个List<Type>或HashSet<Type>只是使用acceptableTypes.Contains(dest).