Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当异步方法不以“async”结尾时,如何在Visual Studio中获得警告?_C#_Visual Studio_Asynchronous - Fatal编程技术网

C# 当异步方法不以“async”结尾时,如何在Visual Studio中获得警告?

C# 当异步方法不以“async”结尾时,如何在Visual Studio中获得警告?,c#,visual-studio,asynchronous,C#,Visual Studio,Asynchronous,如何让VisualStudio在每次创建不以Async结尾的异步方法时给我一个命名警告 这是异步方法的推荐约定,但我经常发现自己忘记添加后缀,警告会很有用。来自选项 转到文本编辑器→ 基本的→ 代码样式→ 命名 选择管理规范并添加新规范 选择方法,勾选所有辅助功能选项,并从修饰符中选择Async。 将标题指定为异步方法并保存 现在进入管理命名样式并添加新样式。添加Async作为后缀,并将其命名为AsyncSuffix,然后保存 现在按下加号并创建新的命名。选择specification作为Asy

如何让VisualStudio在每次创建不以Async结尾的异步方法时给我一个命名警告


这是异步方法的推荐约定,但我经常发现自己忘记添加后缀,警告会很有用。

来自选项

转到文本编辑器→ 基本的→ 代码样式→ 命名 选择管理规范并添加新规范 选择方法,勾选所有辅助功能选项,并从修饰符中选择Async。 将标题指定为异步方法并保存 现在进入管理命名样式并添加新样式。添加Async作为后缀,并将其命名为AsyncSuffix,然后保存 现在按下加号并创建新的命名。选择specification作为Async Method,选择required Style作为AsyncPostfix,选择Severity作为Suggester。 单击确定并保存
除了Visual Studio文本编辑器设置外,还可以创建可移植的自定义编辑器设置.editorconfig文件。Visual Studio 2017本机支持.editorconfig文件

通过将.editorconfig文件创建为存储库的一部分并将其推送到存储库,您可以为在该代码库中工作的每个人强制实施一致的编码样式,而不管他们的Visual Studio文本编辑器设置如何

您在个人项目中使用的编码约定可能不同于 在团队项目中使用的。EditorConfig文件可解决此问题 通过使您能够对每个场景进行配置来解决问题

编辑器配置设置优先于全局Visual Studio文本 编辑器设置

为此:

在解决方案资源管理器中,根据要应用命名规则的范围,选择解决方案、项目或项目中的文件夹

单击鼠标右键并选择“添加新项目”,或按Ctrl+Shift+A组合键

从常规类别中选择文本文件,并输入.editorconfig作为文件名。 注意:甚至可以在解决方案的父文件夹中。没有必要解决它

将以下内容粘贴到文件中:

# Top-most EditorConfig file
root = true

[*.{cs,vb}]

# Async methods should have "Async" suffix
dotnet_naming_rule.async_methods_end_in_async.symbols = any_async_methods
dotnet_naming_rule.async_methods_end_in_async.style = end_in_async
dotnet_naming_rule.async_methods_end_in_async.severity = suggestion

dotnet_naming_symbols.any_async_methods.applicable_kinds = method
dotnet_naming_symbols.any_async_methods.applicable_accessibilities = *
dotnet_naming_symbols.any_async_methods.required_modifiers = async

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 = 
更多信息:


异步代码现在非常普遍,我不再把它看作一种实践,除非你真的有两个版本。这是异步方法的推荐约定,是吗?现在,这是一种假设。我们可以使用Visual Studio文本编辑器配置或.editorconfig文件来做的,仅限于警告使用异步修饰符的方法,我们无法将规则应用于返回Task的方法。@rory.ap不,我建议异步调用现在非常常见,不需要特殊处理。您自然会考虑检查一个方法属于哪些类,返回类型是什么,等等。但是我们不会用它们所属的类或者它们的arg和返回类型来注释方法名称。我是说给async同样的待遇。这只是在学习如何使用函数时检查函数的其中一项内容,而不需要在名称中显式调用它。希望在名称中使用…Async可以采用匈牙利符号!我发现,实际上,你不需要添加新项目,你只需要将.editorconfig文件放在与.sln文件相同的目录中,它就会被检测到。甚至可以放在解决方案的父文件夹中。不必将其置于解决方案文件夹结构中。放入项目结构只是为了让它在VS中可用以编辑它。尽管有这么多的投票,但我不知道它是如何工作的。没有建议、警告、错误-nothing@Kamarey在应用此规则之后。尝试关闭编辑器,重新打开它,删除一个不带异步后缀的异步方法,然后再次尝试添加。它会开始工作,你也可以考虑把严重性变为警告。不要捕获不使用修饰符的异步方法,即返回任务但不直接等待。我的经验是:命名规则对方法有效,除非在接口上声明该方法时无效。