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

标签 c# portable-class-library

传统上我会测试一个类型是否是一个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 Core 5
  • Windows 8
  • Windows Phone 8.1
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.iOS(经典)

最佳答案

尝试

using System.Reflection;

typeof(TType).GetTypeInfo().IsValueType

关于c# - 如何检查类型是否是可移植库中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35668425/

相关文章:

c# - 如何将图像从 React 上传到 ASP.NET Core Web API?

c# - Active Directory 公钥使用

c# - 将同步 Moq 模拟转换为异步

c# - 如何使用 HttpClient 将带有 JSON 的 DELETE 发送到 REST API

c# - 将字典内容转换为类型 - 枚举数据类型

c# - Sqlite.net async - 如何在 Xamarin 中使用?

c# - 如何在可移植类库中使用 TypeForwardedTo?

.net - Assembly.GetCallingAssembly 在 WinRT 上不受支持,但适用于可移植类库?

c# - PCL 程序集和读取资源文件

dll - PCL 库和类似的 File.Exists 函数