为什么没有Nullable-Generic方法?接受引用和值类型

时间:2019-11-14 17:57:14

标签: c# .net generics nullable c#-7.3

这有效

    public static T? Read<T>(object value) where T : struct
    {
        return (T)Convert.ChangeType(value, typeof(T));
    }

但这不起作用:

  

错误CS8370功能“可为空的引用类型”在C#7.3中不可用。请使用语言版本8.0或更高版本。

   public static T? Read<T>(object value)
    {
        return (T)Convert.ChangeType(value, typeof(T));
    }

我很好奇我搜索的错误或功能,但未找到任何内容。

如果不相关,可能会删除该问题。所以请告诉我这样做。

1 个答案:

答案 0 :(得分:1)

可空引用类型仅与C# 8.0一起添加。您正在使用C#7.3进行构建。

但是,命名有点混乱。可空的结构/值类型有意义。因为通常它们不能为空。

但是所有引用类型都可以直接为空。似乎实际上是在稍微更改该规则,而没有隐式地使所有引用类型不可为空(如值类型)。