写点什么

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

  • 2020-02-17
  • 本文字数:1217 字

    阅读完需:约 4 分钟

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 分析器就会突出显示。




使用配置文件或 Visual Studio IDE,可以配置你希望包含在项目中的检查和修复。配置文件可以共享,使整个团队能够使用相同的设置。


分析器是可扩展的,因此,你可以编写自己的分析器来处理组织中常见的问题,比如弃用的 API 或源代码中包含的安全凭据。该工具还支持命令行变体,以便可以将其集成到构建管道中。


与其他静态分析工具一样,Roslynator 不需要执行软件来确定程序的行为和特性。它通过检查源代码来实现这一点。这些工具在 20 世纪 70 年代就出现了,当时,Stephen C. Johnson在他的 C 语言课程中提出了 Lint 的想法。它们甚至可以用于非编译语言,如 Python 和 JavaScript。


SonarAnalyzer、XUnit Analyzers、Code Cracker、FxCop 和 StyleCop 等工具之所以能够相对轻松地进行这种分析,是因为 Roslyn 编译器的独特创建方式。如下所示,编译器和工具不是以黑盒的方式提供,而是作为一系列 API 和服务提供的。这些工具可以使用编译器 API 来识别问题代码以及生成替换选项。



图片来源:Roslyn Overview on github


然而,并不是所有流行的代码分析工具都使用 Roslyn。例如,Resharper工具已经存在了更长时间,它使用的是 JetBrains 专有的技术。Resharper 比 Roslyn 早了几年,他们的引擎提供的特性比 Roslyn API 多,比如解决方案范围的错误分析,“大局(big picture)”代码检查,以及更广泛的语言支持,比如 Razor。JetBrains 已经在他们的其他产品中使用了 Roslyn 技术,比如Rider IDE


原文链接:


C# Static Analysis Tool Roslynator.Analyzers Now Has over 500 Ways to Improve Code


2020-02-17 09:0014102

评论 1 条评论

发布
用户头像
C#太过先进老板们看不懂,老板们只认识java
2020-02-17 09:42
回复
没有更多了
发现更多内容

「Android渲染」为什么alpha渲染性能低?

李小四

Android渲染 Alpha 渲染

去面试,公司问我生辰八字。

yes

面试

架构师实战营 模块一作业(微信业务架构和学生管理系统架构备选方案)

代廉洁

架构实战营

华仔架构实战营 - 作业 - 模块1

曲元洪

架构实战营

如何做决策?

石云升

决策 28天写作 职场经验 管理经验 4月日更

没有lrzsz,怎么传文件到服务器?

运维研习社

运维 工具

JavaScript 图片转文字,文字转语音

空城机

JavaScript 大前端 4月日更 tesseract 图片转文字

Redis 集群

escray

redis 学习 极客时间 Redis 核心技术与实战 4月日更

与JVM做朋友系列(3)又见Class字节码

洛神灬殇

JVM X86 stack register

回归本我还是追逐名利,技术人在中年危机下的抉择?

刘华Kenneth

管理 职场 中年危机

架构实战营 模块 1 课后作业

eoeoeo

架构实战营

第13周课后练习-数据应用(二)

潘涛

架构师训练营 4 期

Vue3源码 | 读懂keep-alive组件以及缓存机制

梁龙先森

源码分析 大前端 Vue3

「架构师训练营 4 期」 第十三周 - 001&2

凯迪

架构师训练营 4 期

区块链:颠覆其外,守旧其中

CECBC

互联网

区块链开发主流语言和核心优势

CECBC

区块链

区块链走红 江苏多行业应用迈入"可信时代"

CECBC

农产品

大数据计算生态之数据计算(二)

小舰

4月日更

架构实战营 模块一:课后作业

👈

架构实战营

博客主题用腻了?来试试赛博朋克 2077 主题吧!

清秋

CMS Hexo 博客 4月日更

外网访问Ubuntu下的Tomcat

U2647

tomcat ubuntu 4月日更

喂~ 办章吗?Python OpenCV 互联网+ 项目,图像处理取经之旅第 18 天

梦想橡皮擦

Python OpenCV 4月日更

【LeetCode】森林中的兔子Java题解

Albert

算法 LeetCode 4月日更

3.4 Go语言从入门到精通:包管理工具之Go module

xcbeyond

go modules Go 语言 4月日更

元数据管理—动态表单设计器在crudapi系统中完整实现

crudapi

API crud crudapi 动态表单 表单设计

Netty 核心源码解读 —— EventLoop 篇

松然聊技术

与JVM做朋友系列(2)再见类加载器

洛神灬殇

JVM ClassLoader 类加载器

【极客大学】模块一作业

冬天的树

模块一作业

c

架构实战营

如何在Deno中使用 Node 模块?

Sakura

4月日更

架构实战营 模块一:学习总结

👈

架构实战营

C#静态分析工具Roslynator.Analyzers将方法数量提高了500多_编程语言_Andy Clark_InfoQ精选文章