是否可以标记async Task<T>
的结果可以为空?使用Attribute [CanBeNull]不起作用,因为async Task的返回值永远不为null。
[CanBeNull] // not working...
private async Task<T> doSomeFancyAsyncStuff([NotNull] object icantbenull) { ...
答案 0 :(得分:4)
您可以使用Resharper ItemCanBeNullAttribute
可以应用于从IEnumerable派生的类型的符号以及任务和Lazy类的符号,以指示 Task.Result的集合项的值属性或Lazy.Value属性可以为null。
应用于您的示例:
[ItemCanBeNull]
public async Task<string> GetSomeName() {
var time = DateTime.Now;
if(time.Second == 30) {
return "Jimmy";
} else {
return null;
}
}