c# - 泛型类中的可空泛型字段

标签 c# class generics nullable

我正在尝试做这样的事情:

public class MySuperCoolClass<T>
{
    public T? myMaybeNullField {get; set;}
}

这可能吗?

这给了我错误:

error CS0453: The type T' must be a non-nullable value type in order to use it as type parameterT' in the generic type or method System.Nullable'.

谢谢

最佳答案

添加where T : structNullable<T> 以来消除错误的通用约束只接受 struct .

public class MySuperCoolClass<T> where T : struct
{
    public T? myMaybeNullField { get; set; }
}

Nullable<T>定义如下

public struct Nullable<T> where T : struct

所以你也被迫这样做,只是为了阻止你这样做MySuperCoolClass<object>这使得 object?这是无效的。

关于c# - 泛型类中的可空泛型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20353742/

相关文章:

java - 扩展类的调用函数

javascript - 如何在基类代码内引用 `this.constructor` 上的静态属性?

java - 将特定于类和特定于方法的泛型封装在一种类型中

C# 参数化方法数组或参数化方法列表

c# - Autofac 使用开放通用类解析开放通用接口(interface)

c# - 如何旋转自定义移动标记(图像)GMap

java - 使用 java.exe 运行 .class 文件 - 错误 : Could not find or load main class

Java序列化和传输内部类

java - 无法将通用列表添加到通用 map

c# - OData Linq 到查询字符串