C#静态分析工具 Roslynator.Analyzers 将方法数量提高了 500 多


Roslynator.Analyzers 软件包的新版本 2.3.1 将分析、重构和修复方法的数量提升到了 500 多个。

Roslynator 使用开源的 Roslyn .NET 编译器平台对 C#代码进行静态分析。

这个分析驱动 IDE 显示可以帮助你改进代码的提示和操作信息。

Roslynator 可以安装到 Visual Studio 2017、Visual Studio 2019 和 Visual Studio Code 中。

VSCode 版本可以在 Linux、Mac 和 Windows 上运行。

这样,它就可以利用最新版本的 Roslyn,即 3.0 版本。

Roslynator.Analyzers 2.3.1 将是支持 Visual Studio 2017 的最后一个版本。

可以在一个简单的“hello world”控制台应用程序中看下这个功能。

using System;
using System.Collections.Generic;
 
namespace HelloWorldApp
{
    class Program
    {
        static void Main(string[] args)
        {  
            var a = new List<string>() { "Hello","World"};
            var b = a.ToArray();
            for (var f = 1;f < b.Length;f++) {
                Console.WriteLine(value: b[f].ToString());
            }
            
        }
    }
}

Roslynator 在可以重构的项旁边添加了一个灯泡动作项菜单,并在屏幕底部的面板中列出了问题。

曲线突出了问题面板中提到的问题。

该系统在你输入时工作。

例如,当你输入 for 语句时,如果结束条件无法解析为布尔值,Roslynator 分析器就会突出显示。

C#静态分析工具 Roslynator.Analyzers 将方法数量提高了 500 多

C#静态分析工具 Roslynator.Analyzers 将方法数量提高了 500 多

使用配置文件或 Visual Studio IDE,可以配置你希望包含在项目中的检查和修复。

配置文件可以共享,使整个团队能够使用相同的设置。

分析器是可扩展的,因此,你可以编写自己的分析器来处理组织中常见的问题,比如弃用的 API 或源代码中包含的安全凭据。

该工具还支持命令行变体,以便可以将其集成到构建管道中。

与其他静态分析工具一样,Roslynator 不需要执行软件来确定程序的行为和特性。

它通过检查源代码来实现这一点。

这些工具在 20 世纪 70 年代就出现了,当时, Stephen C. Johnson 在他的 C 语言课程中提出了 Lint 的想法。

它们甚至可以用于非编译语言,如 PythonJavaScript

SonarAnalyzer、XUnit Analyzers、Code Cracker、FxCop 和 StyleCop 等工具之所以能够相对轻松地进行这种分析,是因为 Roslyn 编译器的独特创建方式。

如下所示,编译器和工具不是以黑盒的方式提供,而是作为一系列 API 和服务提供的。

这些工具可以使用编译器 API 来识别问题代码以及生成替换选项。

C#静态分析工具 Roslynator.Analyzers 将方法数量提高了 500 多

图片来源: Roslyn Overview on github

然而,并不是所有流行的代码分析工具都使用 Roslyn。

例如, Resharper 工具已经存在了更长时间,它使用的是 JetBrains 专有的技术。

Resharper 比 Roslyn 早了几年,他们的引擎提供的特性比 Roslyn API 多,比如解决方案范围的错误分析,“大局(big picture)”代码检查,以及更广泛的语言支持,比如 Razor。

JetBrains 已经在他们的其他产品中使用了 Roslyn 技术,比如 Rider IDE 。

本文摘自InfoQ作者Andy Clark,原文地址:https://www.infoq.cn/article/jDwxWlJCaAL42h6TcqqU,侵删。

相关阅读 >>

c#解析xml文件的代码实例分享

详解c#使用itextsharp添加pdf水印的代码案例

c#中二分法查找的入门(代码介绍)

c#如何导入导出与处理excel文件

c#中如何取绝对值函数的方法详解

c#因其保护级别而不可访问,只能处理公共类型的详细代码介绍

详解c#生成随机数功能的代码示例

c#-json详解

c#如何计算2个字符串相似度的示例代码分享

深入讲解c#中委托的+=和-=

更多相关阅读请进入《Roslynator.Analyzers》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...