ReSharper代码注释异步任务<T>

Jen*_*wka 2 .net c# resharper annotations async-await

是否可以标记的结果async Task<T>可以为null?使用属性[CanBeNull]不起作用,因为异步Task的返回值永远不会为null。

[CanBeNull] // not working...
private async Task<T> doSomeFancyAsyncStuff([NotNull] object icantbenull) { ...
Run Code Online (Sandbox Code Playgroud)

ndo*_*hoe 6

您可以使用Resharper ItemCanBeNullAttribute

可以应用于从IEnumerable派生的类型的符号以及Task和Lazy类的符号,以指示Collection.Task.Result属性或Lazy.Value属性的值可以为null。

ItemCanBeNullAttribute

应用于您的示例:

[ItemCanBeNull]
public async Task<string> GetSomeName() {
    var time = DateTime.Now;
    if(time.Second == 30) { 
        return "Jimmy"; 
    } else {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)