在 .net 4.5 中,我可以使用 Type.IsValueType 来以直观的方式解决这个问题。然而,当我创建使用可移植库的通用应用程序时,它没有任何等效方法来查找类型是否为值类型。
还有其他什么技巧可以解决这个问题吗?
在 .net 4.5 中,我可以使用 Type.IsValueType 来以直观的方式解决这个问题。然而,当我创建使用可移植库的通用应用程序时,它没有任何等效方法来查找类型是否为值类型。
还有其他什么技巧可以解决这个问题吗?
type.GetTypeInfo().IsValueType
。同时确保你已经添加了对 System.Reflection 的 using 语句,这样扩展方法 GetTypeInfo()
才能可用。using System.Reflection;
语句后能够访问 typeof(object).GetTypeInfo().IsValueType
。 - Daniel PlaistedIsValueType
直接在Type上可用(即您不需要调用GetTypeInfo
)。但是您无法从Windows 8.1应用程序引用.NET 4项目。您是否尝试将同一文件链接到两个项目中?还是使用针对.NET 4的PCL?或者发生了什么事情? - Daniel Plaisted
typeof(ValueType).IsAssignableFrom(type)
System.Object
派生的。 - Arturo Torres Sánchez
IsValueType
. - leppieIsValueType
有什么问题吗? - abatishchev