标签: roslynator

C# 方法中多个丢弃变量的正确格式是什么

我有一个由外部 api 调用的方法,该方法期望该方法具有这些特定参数

        public static bool DoSomething(
            int x,
            int y
        ) =>
            true;
Run Code Online (Sandbox Code Playgroud)

Rosyln 代码分析正在报告 IDE0060 消息,如此处记录

确切的消息是

Warning IDE0060 Remove unused parameter 'y' if it is not part of a shipped public API
Run Code Online (Sandbox Code Playgroud)

我将“x”替换为“_”

'y' 应该替换成什么?

__(双下划线)——编译器抱怨未使用 __(相同的 IDE0060 消息)

_(单下划线)——编译器抱怨参数名称 _ 是重复的(CS0100 错误)

_1(下划线后跟数字)——编译器抱怨 _1 是未使用的参数(RCS1163 消息)

c# roslyn-code-analysis roslynator

6
推荐指数
1
解决办法
2179
查看次数

内置代码分析器与 NuGet 包

刚刚切换到VS2019我\xe2\x80\x99m探索是否使用代码分析。在项目属性\xe2\x80\x9c代码分析\xe2\x80\x9d选项卡中,有许多内置的Microsoft规则集,当我的代码违反这些规则之一时,我可以看到编辑器出现波形曲线。我可以自定义这些规则集并将 \xe2\x80\x9csave 为 \xe2\x80\x9d 来创建我自己的规则集。

\n\n

我还看到了代码分析器 NuGet 包,例如 \xe2\x80\x9cRoslynator\xe2\x80\x9d 和 \xe2\x80\x9cStyleCop.Analyzers\xe2\x80\x9d。这些和内置的 MS 规则有什么区别?真的只是因为更全面的规则/更多的选择吗?

\n\n

如果我想坚持使用内置的 MS 规则,有什么限制吗?例如,它们是否仍会在 TFS/Azure DevOps 构建期间运行并被报告?

\n

stylecop static-code-analysis roslyn-code-analysis roslynator visual-studio-2019

5
推荐指数
1
解决办法
2827
查看次数

如何在命令行上显示 C#(分析器)建议?

我喜欢dotnetCLI 的一点是,您可以运行$ dotnet build --no-incremental,并且始终会获得项目中所有警告的列表。我用它来对项目进行彻底的改变等。其输出可以通过管道传输到 UNIX 工具,以进行进一步处理。

我还想了解您在 Visual Studio 中获得的“建议”。这可能吗?如何实现?

建议?

我所说的建议是指您在 Visual Studio 的“错误列表...”中收到的“消息”(见下文)。编译器将此称为“不表明问题的信息”( DiagnosticSeverity.Info),EditorConfig 将此称为这些建议 ( EditorConfigSeverityStrings.Suggestion)。 在此输入图像描述

如何重现?

对此的最小再现是创建一个新的控制台应用程序,并添加一个带有私有字段的新类,但不要这样做readonly(见下文)!这将触发IDE044(如屏幕截图所示),但在运行时不会显示$ dotnet build --no-incremental。如果您通过文件覆盖严重性.editorconfig,那么建议确实会显示,但显然是警告。

第1类:

public class Class1
{
    private string Foo = "bar";
}
Run Code Online (Sandbox Code Playgroud)

.editorconfig

[*.cs]

# IDE0044: Add readonly modifier
dotnet_diagnostic.IDE0044.severity = warning

Run Code Online (Sandbox Code Playgroud)

侧边栏:我在寻找什么?

我正在寻找“开箱即用”的东西,比如$ dotnet build .... 但是,如果这是不可能的,我可以使用第 3 方全局工具,例如Roslynator 命令行界面(我确实尝试过该路径,但未能使其正常工作)。

我很清楚您可以在 Roslyn API 之上编写一个自定义工具,但我认为这非常脆弱,因为您需要满足包恢复、查找 …

.net c# roslyn dotnet-cli roslynator

5
推荐指数
1
解决办法
711
查看次数