You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让.editorconfig命名规则排除async void事件处理程序?

解决async方法命名规则排除async void的问题

方法一:修改.editorconfig规则,限定返回类型

原规则仅检查async修饰符,导致async void方法也被纳入检查范围。只需在符号定义中添加返回类型限制,就能只针对返回Task或Task<T>的异步方法生效:

# Async methods returning Task/Task<T> should have "Async" suffix
dotnet_naming_rule.async_task_methods_end_in_async.symbols = async_task_methods
dotnet_naming_rule.async_task_methods_end_in_async.style = end_in_async
dotnet_naming_rule.async_task_methods_end_in_async.severity = suggestion

dotnet_naming_symbols.async_task_methods.applicable_kinds = method
dotnet_naming_symbols.async_task_methods.applicable_accessibilities = *
dotnet_naming_symbols.async_task_methods.required_modifiers = async
# 限定返回类型为Task(非泛型)和Task`1(泛型Task<T>)
dotnet_naming_symbols.async_task_methods.required_return_type = Task, Task`1

dotnet_naming_style.end_in_async.required_prefix = 
dotnet_naming_style.end_in_async.required_suffix = Async
dotnet_naming_style.end_in_async.capitalization = pascal_case
dotnet_naming_style.end_in_async.word_separator = 

关键改动是required_return_type = Task, Task1`:

  • Task匹配非泛型异步返回类型
  • Task1是C#中泛型Task`的内部表示形式,用于匹配所有泛型异步返回方法

这样修改后,async void类型的事件处理方法就不会再触发命名建议。

方法二:使用Roslyn分析器(更精准的场景识别)

如果.editorconfig的规则在部分IDE版本中对泛型类型支持有限,可以借助官方Roslyn分析器包:

  1. 安装Microsoft.CodeAnalysis.NetAnalyzers NuGet包
  2. 启用规则AS0001: Async methods should have Async suffix

该规则默认会识别async void的事件处理方法场景,自动跳过命名检查,仅对返回Task/Task<T>的异步方法强制执行命名规范,无需额外配置。

内容的提问来源于stack exchange,提问作者Julian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:17:43