告诉resharper一个Func 永远不会返回null
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了告诉resharper一个Func 永远不会返回null相关的知识,希望对你有一定的参考价值。
[NotNull]
private readonly Func<string> FunctionThatWillNeverBeNullNorReturnNull;
void Test(){
string thisStringIsNotNull = FunctionThatWillNeverBeNullNorReturnNull();
}
我怎么告诉resharper上面的函数永远不会返回null?设置[NotNull]意味着Function引用不能为null,但我不确定如何告诉resharper它返回的内容也不会为null。
答案
我所做的是创建一个可以注释的委托。
但是,ReSharper不会显示返回值的警告。它仅适用于委托参数。
[CanBeNull]
public delegate string ReturnMaybeNull();
[NotNull]
public delegate string ReturnNotNull([NotNull]string someParam);
[NotNull]
private readonly ReturnMaybeNull FunctionThatMayReturnNull = () => null;
[NotNull]
private readonly ReturnNotNull FunctionThatNeverReturnsNull = someParam => null; // no warning
void Test()
{
bool test = FunctionThatMayReturnNull().Equals(""); // no warning
string thisStringIsNotNull = FunctionThatNeverReturnsNull(null); // parameter warning here
if (thisStringIsNotNull == null) // no warning
{
test = test ^ true;
}
}
以上是关于告诉resharper一个Func 永远不会返回null的主要内容,如果未能解决你的问题,请参考以下文章