[NotNull]
private readonly Func<string> FunctionThatWillNeverBeNullNorReturnNull;
void Test(){
string thisStringIsNotNull = FunctionThatWillNeverBeNullNorReturnNull();
}
如何告诉锐化器上述函数永远不会返回空值?输入 [NotNull] 意味着函数引用不能为空,但我不确定如何告诉 resharper 它返回的内容也不会为空。
我所做的是创建一个可以注释的委托。
但是,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;
}
}