c# - 寻找一种更优雅的方法来检查可空值类型

标签 c# nullable value-type

要检查一个值类型是否可以为空,我目前正在做这样的事情:

int? i = null;
bool isNullable = i.GetType().ToString().Contains("System.Nullable");

有没有更优雅的方法来做到这一点?

最佳答案

您可以使用 Nullable.GetUnderlyingType(Type) - 这将返回 null如果它不是可空类型开头,或者不是基础值类型:

if (Nullable.GetUnderlyingType(t) != null)
{
    // Yup, t is a nullable value type
}

请注意,这使用了 Nullable静态类,而不是 Nullable<T>结构。

关于c# - 寻找一种更优雅的方法来检查可空值类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3206091/

相关文章:

c# - 在 .NET 中,使用 "foreach"迭代 IEnumerable<ValueType> 的实例会创建副本吗?那么我应该更喜欢使用 "for"而不是 "foreach"吗?

c# - Convert.ToBoolean 失败,值为 "0"

java - Objects.requireNonNullElse() 和 Optional.ofNullable().orElse() 有什么区别?

Typescript - 将 null 分配给变量

ios - Xcode 6.3 上的可空性问题

c# - 为什么值类型不能为空

c# - 从 SQL Server 中选择百万条记录

c# - 仅从 DateTime 对象获取日期或时间

c# - Visual C# 2010 命令行参数到 csc

c# - 哪种技术更适合成为移动开发人员 C# 或 java?