ReSharper代码注释异步任务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ReSharper代码注释异步任务相关的知识,希望对你有一定的参考价值。

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

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

你可以使用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;
    }
}

以上是关于ReSharper代码注释异步任务的主要内容,如果未能解决你的问题,请参考以下文章

Resharper 的快捷键

Resharper快捷键汇总

工具-VS插件Resharper快捷键

我应该在 Fragment 中的啥生命周期状态下执行异步任务?

使用带有 viewpager 的异步任务时的竞争条件

Android - 为列表视图填充适配器的异步任务