相关疑难解决方法(0)

可空的引用类型:如何指定“ T”?类型而不限制类或结构

我想创建一个具有type成员的泛型类TT可以是类,可为空的类,结构或可为空的结构。所以基本上什么都可以。这是一个简化的示例,显示了我的问题:

#nullable enable

class Box<T> {
    public T Value { get; }

    public Box(T value) {
        Value = value;
    }

    public static Box<T> CreateDefault()
        => new Box<T>(default(T));
}
Run Code Online (Sandbox Code Playgroud)

由于使用了新#nullable enable功能,我得到以下警告:Program.cs(11,23): warning CS8653: A default expression introduces a null value when 'T' is a non-nullable reference type.

这个警告对我来说很有意义。然后,我尝试通过?在属性和构造函数参数中添加来修复此问题:

#nullable enable

class Box<T> {
    public T? Value { get; }

    public Box(T? value) {
        Value = value;
    }

    public static Box<T> CreateDefault()
        => …
Run Code Online (Sandbox Code Playgroud)

c# nullable c#-8.0 nullable-reference-types

19
推荐指数
2
解决办法
1294
查看次数

标签 统计

c# ×1

c#-8.0 ×1

nullable ×1

nullable-reference-types ×1