如何解决为什么 ReSharper 在内联函数中而不是在方法中声称“表达式始终为真”?
代码在 Rider 2020.2 及之前没有错误 我将 Rider 升级到 2020.3.1 以及 ReSharper 命令行工具。现在我在 Xamarin C# 项目中收到这个奇怪的警告:
var controller = new UIActivityViewController(items.ToArray(),null);
controller.CompletionWithItemsHandler = (activityType,completed,returnedItems,error) =>
{
// here: Expression is always true
if (error != null)
{
logger.Error("Error: {0}",error.Description);
}
};
当我将内联处理程序更改为方法时,错误消失了。我在这里错过了什么?
private void CompletionWithItemsHandler(NSString activityType,bool completed,NSExtensionItem[] returnedItems,NSError error)
{
if (error != null)
{
logger.Error("Error: {0}",error.Description);
}
}
解决方法
事实证明代码完全没问题。
Xamarin.iOS 的开发人员已打开 Nullable 引用类型,但未完全正确标记所有可为 null 的参数。它似乎已经存在了很长一段时间,但新版本的 Rider 现在还可以检查以前显然没有的库代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。