如何检查类型是否是可移植库中的结构

本文关键字:可移植 结构 是否是 类型 何检查 检查 | 更新日期: 2023-09-27 18:36:25

传统上,我会测试类型是否是这样的struct

public void Do<TType>(TType value)
{  
   if (typeof(TType).IsValueType) 
   {
      // code for structs
   }
   else
   {
      // code for non structs
   }
}

但是现在我发现 IsValueType 属性在具有我目标框架的可移植类库中不可用。那么如何检查它是否是结构体呢?

我的目标是:

  • .NET Framework 4.5
  • ASP.NET 核心 5
  • 视窗 8
  • Windows Phone 8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.iOS (Classic)

如何检查类型是否是可移植库中的结构

试试

using System.Reflection;
typeof(TType).GetTypeInfo().IsValueType