在 ReSharper 2024.1 中,我们进一步改进了 C# 支持,增加了将代码转换为集合表达式的更多建议,在 foreach
循环内迭代期间修改集合时也会收到警告。 Razor 支持现在可为 @addTagHelper
和 @removeTagHelper
指令解析引用,并且用于编辑自定义命名规则的 UX/UI 已得到极大改进。
可免费试用 30 天
现在,您将获得建议,将源代码中的更多代码结构转换为 C# 12 中的集合表达式,例如空数组或 ImmutableArray
声明和初始化。
我们添加了新的 Possible 'System.InvalidOperationException: Collection was modified'(可能的 'System.InvalidOperationException: 集合已被修改')检查,在 foreach
循环内迭代期间修改集合时,它会发出警告,因为此修改可能会导致运行时异常。 此分析了解集合修改后退出循环的情况,这些情况不会触发警告。
检查附带对应快速修复,可以帮助您立即解决此问题。
Generate | Formatting Members(生成 | 设置成员格式)可供生成样板代码来重写 ToString()
方法并为类型返回有意义的字符串。 从 2024.1 版本开始,此功能支持更多类型,例如 ISpanFormattable
、IUtf8SpanFormattable
和 IFormattable
。
[MustDisposeResource]
注解改进:C# 代码分析现在可以确保正确处置异步方法返回的资源(包括 Task<IDisposable>
和 ValueTask<IDisposable>
中包装的资源),帮助您避免意外处置任务本身。 .ConfigureAwait(...)
、.AsTask()
或 .Result
检索的资源。 以下是我们对 Change Signature(更改签名)重构所做的一些改进:
List<>
指定类型时,您可以使用代码补全轻松选择所需类型,例如 int
。 System.Collections.Generic.List<System.Int16>
类型,在生成的代码中它将被自动缩短为 List<short>
。 in
和 ref readonly
修饰符以及 record
类型。 在此版本中,Make Static(设为 static)重构支持主构造函数形参。 它们位于 Introduce parameters(引入形参)列表中,并具有单独的图标帮助您轻松区分。 此重构也适用于局部函数。
代码分析现在提供对 protobuf-net
库中 ProtoContract
特性和 ImplicitFields 枚举的支持。 这两项都可以用来标记隐式用于序列化的成员。 因此,此类成员不再使用 unused members(未使用的成员)警告进行标记。
@addTagHelper
和 @removeTagHelper
指令解析引用 ReSharper 现在可以为 Razor 视图中 @addTagHelper
和 @removeTagHelper
指令内指定的程序集名称解析引用。 因此,您现在可以受益于代码补全、查找用法以及便利的代码导航。
ReSharper 现在会将任何未解析的程序集名称视为错误,并以红色高亮显示以引起您的注意。
C++ 支持的显著增强包括:
详细了解 C++ 更新:ReSharper C++ 2024.1 最新变化。
我们正在为解决方案级分析积极完善高资源利用率模式,通过更有效地利用 CPU 并行性显著缩短分析时长。 我们改进了代码分析活动的内存分配分析,最大程度地减少垃圾回收所花费的时间。 优化过程仍在推进,我们欢迎您启用此模式并提供体验反馈。
现在,代码中的元素重命名更快、更高效。 此更改还会影响 ReSharper 的其他核心组件,提升多个功能的性能,包括 Find Usages(查找用法)。
对于大型类,静态成员的 Move to Another Type(移动到其他类型)重构的性能得到了显著提高。
2024.1 更新为 ReSharper 引入了新的 Assembly Diff(程序集差异)工具窗口。 更改包括:
.zip
归档的功能已从 Assembly Explorer(程序集资源管理器)移至 Assembly Diff(程序集差异)工具窗口。 ReSharper 内的反编译器现已支持 WebAssemblies 的 WebCIL 打包格式。 支持涵盖:
.wasm
文件的功能。 Visual Studio 内的 dotTrace、dotMemory 和 dotCover 现在也提供对桌面 MAUI 和 .NET macOS 应用程序的支持。
支持的目标框架:
net8.0-windows
、net7.0-windows
net8.0-maccatalyst
、net7.0-maccatalyst
net8.0-macos
、net7.0-macos
点击此处详细了解分析模式的可用性和限制。
这些 .NET 工具的独立版本中也提供对 MAUI 项目的支持。
从 2024.1 版本开始,InspectCode 的默认输出格式为 SARIF。 XML 格式将很快被弃用。 在当前版本中,使用 -f="xml"
形参时,结果仍然以 XML 格式提供。
我们已经完成了文本控件的内部重构。 除了使 ReSharper 在进程之外运行,此重构还旨在改进 ReSharper 和 Rider 的输入和编辑器性能相关方面。 您可以在此处找到我们将 ReSharper 带出进程的最新进展。
JetBrains Marketplace 插件源采用基于兼容性检查的新筛选机制。 这意味着不兼容的插件不再显示在 ReSharper 的扩展程序管理器中。
可免费试用 30 天