ReSharper代码注释异步任务

问题描述 投票:1回答:1

是否有可能标记async Task<T>的结果可以为空?使用Attribute [CanBeNull]不起作用,因为async Task的返回值永远不为null。

[CanBeNull] // not working...
private async Task<T> doSomeFancyAsyncStuff([NotNull] object icantbenull) { ...
c# .net annotations async-await resharper
1个回答
4
投票

你可以使用Resharper ItemCanBeNullAttribute

可以应用于从IEnumerable派生的类型的符号以及Task和Lazy类的符号,以指示集合项,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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.