再一次问:"有没有一种更简单的内置方式来代替我的助手方法?"

因此,从一个可为null的类型中获取底层类型很容易,但是如何获取一个可为null的类型呢.网络类型?

所以我有

typeof(int)
typeof(DateTime)
System.Type t = something;

我想要

int? 
DateTime?

Nullable<int> (which is the same)
if (t is primitive) then Nullable<T> else just T

有内置的方法吗?

推荐答案

以下是我使用的代码:

Type GetNullableType(Type type) {
    // Use Nullable.GetUnderlyingType() to remove the Nullable<T> wrapper if type is already nullable.
    type = Nullable.GetUnderlyingType(type) ?? type; // avoid type becoming null
    if (type.IsValueType)
        return typeof(Nullable<>).MakeGenericType(type);
    else
        return type;
}

.net相关问答推荐

API响应返回null错误. NET MAUI

如何处理以用户为中心的CSP现时值?(uc-lock.bundle.js)

.NET 7,8 System.Text.Json反序列化多态参数

.NET发布的应用程序运行与开发不同的端口

查询 MongoDb 中嵌入式文档中的一个字段,该字段抛出调用运算符的左侧必须是对持久属性的直接访问

如何找到windows服务exe路径

使用 Thread.Abort() 有什么问题

异步总是 WaitingForActivation

在目录中创建应用程序快捷方式

每第 N 个字符/数字拆分一个字符串/数字?

我可以使用 UriTemplate 将非字符串传递给 WCF RESTful 服务吗?

使用 C# 清除文本文件的内容

如何删除只读文件?

X509Certificate 构造函数异常

如何使用 c# 仅获取目录中的文件名?

如何使用 Entity Framework Code First CTP 5 存储图像?

如何从文件中删除单个属性(例如只读)?

使用 LINQ 搜索树

如何使用 NPOI 读取文件

不签署 .NET 程序集有什么问题吗?