如何检查类型是否是可移植库中的结构
How to check if a type is a struct from a portable library
传统上我会测试一个类型是否是 struct
这样的:
public void Do<TType>(TType value)
{
if (typeof(TType).IsValueType)
{
// code for structs
}
else
{
// code for non structs
}
}
但现在我发现 IsValueType
属性 在我的目标框架的可移植 class 库中不可用。那么如何检查它是否是一个结构体呢?
我的目标是:
- .NET Framework 4.5
- ASP.NET核心5
- Windows 8
- Windows Phone 8.1
- Xamarin.Android
- Xamarin.iOS
- Xamarin.iOS(经典)
尝试
using System.Reflection;
typeof(TType).GetTypeInfo().IsValueType
传统上我会测试一个类型是否是 struct
这样的:
public void Do<TType>(TType value)
{
if (typeof(TType).IsValueType)
{
// code for structs
}
else
{
// code for non structs
}
}
但现在我发现 IsValueType
属性 在我的目标框架的可移植 class 库中不可用。那么如何检查它是否是一个结构体呢?
我的目标是:
- .NET Framework 4.5
- ASP.NET核心5
- Windows 8
- Windows Phone 8.1
- Xamarin.Android
- Xamarin.iOS
- Xamarin.iOS(经典)
尝试
using System.Reflection;
typeof(TType).GetTypeInfo().IsValueType