当你拨打ImmutableList<T>.Add但不使用其结果时,有没有办法显示警告?

我认为CA1806会做到这一点,对于某些返回结果的方法(比如屏幕截图中的string.ToHigh()),它也会做到这一点,但不会返回ImmutableList<T>.Add个结果.

enter image description here

推荐答案

根据CA1806的帮助页面,出现这种情况的原因是:

出现此警告的可能原因有几个:

  • 创建了一个新对象,但从未使用过.
  • 调用创建并返回新字符串的方法,并且从不使用该新字符串.
  • 返回从未使用过的HRESULT或错误代码的COM或P/Invoke方法.
  • 一种语言集成查询(LINQ)方法,它返回从未使用过的结果.

请注意,它只显示"一个创建并返回新字符串的方法".分析器only可能寻找string种方法作为默认行为.它并不"知道"ImmutableList<T>.Add还会返回一个使用should的新实例.

正如该页面底部所述,您可以通过将触发CA1806的方法添加到.editorconfig选项dotnet_code_quality.CA1806.additional_use_results_methods来添加更多方法.这是一个由|个单独的方法名称组成的列表.

dotnet_code_quality.CA1806.additional_use_results_methods = M:System.Collections.Immutable.ImmutableList`1.Add(`0)

请注意引用该方法的不同寻常的语法.你可以看到这种格式是如何工作的here.

Csharp相关问答推荐

如何从HttpContext获取请求正文

不带身份的Blazor服务器.Net 8 Cookie身份验证

ASP.NET核心REST API返回一个非常大的数字

如何在VS代码中为C#DotNet配置.json选项以调试内部终端的控制台应用程序

DbContext-传递自定义配置选项

自定义列表按字符串的部分排序

LINQ to Entities中的加权平均值

在字符串C#之前获取数字

对于PowerShell中的ConvertTo-SecureString方法,Microsoft如何将初始化向量添加到AES加密中的安全字符串?

为什么此名称不再被识别?名称不存在于当前上下文中?

如何从Azure函数使用Graph API(SDK 5.35)中的[FindMeetingTimes]

用于ASP.NET核心的最小扩展坞

Visual Studio如何使用当前的框架?

如何在Cake脚本中设置MSBuild.exe的绝对路径

使用免费的DotNet库从Azure函数向Azure文件共享上的现有Excel文件追加行

反序列化我以前使用System.Text.Json序列化的文件时出现异常

Avalonia MVVM数据模板

C# -根据列表所包含的值的数量组织列表- C#

C#11/.NET 7-判断&t;值类型>;后的可为空性行为

使用多个身份验证方案时引发NullReferenceException