"MyObject"类型必须是非可空值类型才能在泛型类型或方法"Nullable <T>"中将其用作参数"T"

dev*_*ric 13 c# generics

我正在使用 .net framework 4.5

我收到以下错误

错误CS0453类型'MyObject'必须是非可空值类型才能在泛型类型或方法'Nullable'中将其用作参数'T'

  public async Task<Nullable<MyObject>> MyMethod(string myParamter)
    {}
Run Code Online (Sandbox Code Playgroud)

我也试过了

  public async Task<MyObject?> MyMethod(string myParamter)
    {}
Run Code Online (Sandbox Code Playgroud)

如果我将该东西设置为可空,那么为什么我会在方法名称下方的红线上显示此错误消息

stackoverflow 答案很简单,使返回类型可以为空,但对我来说Visual Studio不允许它.

Pat*_*man 26

由于MyObject是一个对象,并且对象可以通过定义为空,因此没有必要使用Nullable<T>结构或?运算符来支持空值.

Nullable<T>对于结构(如DateTime)和值类型等int,float等.