添加<Nullable>enable</Nullable>
or 后#nullable enable
,我的通用方法遇到了以下问题:
这不起作用:
public T? GetDefault<T>()
{
return default;
}
Run Code Online (Sandbox Code Playgroud)
这适用于警告:
public T GetDefault<T>()
{
return default;
}
Run Code Online (Sandbox Code Playgroud)
这单独工作,但不能一起工作。
public T? GetDefault<T>() where T : class
{
return default;
}
public T? GetDefault<T>() where T : struct
{
return default;
}
Run Code Online (Sandbox Code Playgroud)
从逻辑上讲,第一种方法应该有效。
在不创建多种方法和抑制警告的情况下,摆脱这种情况的正确方法是什么(在任何框架中)?
[MaybeNull] 属性仅适用于 .Net Core 3.0+。
另外,我在这里问了这个问题