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

时间:2016-09-16 12:53:34

标签: c# .net annotations async-await resharper

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

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

1 个答案:

答案 0 :(得分:4)

您可以使用Resharper ItemCanBeNullAttribute

  

可以应用于从IEnumerable派生的类型的符号以及任务和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;
    }
}