首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Resharper重构以删除魔法字符串

Resharper是一款由JetBrains开发的强大的集成开发环境(IDE)插件,它提供了许多功能来提高开发人员的效率和代码质量。其中一个功能是重构以删除魔法字符串。

魔法字符串是指在代码中直接使用的、没有明确含义的字符串常量。使用魔法字符串会导致代码的可读性和可维护性下降,因为它们往往缺乏上下文和解释。而且,如果需要修改这些字符串,就需要在代码中进行全局搜索和替换,非常繁琐和容易出错。

Resharper提供了一种自动化的方式来重构以删除魔法字符串。它可以识别代码中的魔法字符串,并将它们提取为常量或枚举类型。这样一来,代码中的魔法字符串就被替换为具有明确含义的常量或枚举值,使代码更易读、易维护。

使用Resharper重构以删除魔法字符串的步骤如下:

  1. 打开你的代码文件,并确保已经安装和启用了Resharper插件。
  2. 选中你想要重构的魔法字符串,可以是单个字符串或多个字符串。
  3. 右键点击选中的字符串,选择"Refactor"(重构)菜单,然后选择"Extract"(提取)子菜单。
  4. 在弹出的对话框中,输入一个有意义的名称作为常量或枚举类型的名称。
  5. 点击"OK"按钮,Resharper将自动将选中的字符串替换为你指定的常量或枚举值。

通过使用Resharper重构以删除魔法字符串,你可以改善代码的可读性和可维护性,减少代码中的硬编码,并提高开发效率。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ReSharper 配置及用法

用了Alt+F7来搜索这个字符串,等于在查找背后所有的调用者。...Visual Studio 2005提供的重构包括了如下: 封装字段 提取方法 提取接口 提升局部变量 移除参数 重命名 重新排列参数 这些方法在Resharper中全部都支持(但Resharper重构远不止这些...Make Static,如果Resharper检测到这个方法并没有与非静态成员相关联的话,往往会自动地提示你(黄色横杠的形式出现)可以改为static,如果你自作主张的对一些方法进行修改也无不妥,但后果自负...关于Resharper重构功能就是这些,我可能天真地把很多额外功能都算在重构里了,但是它确实能够帮助你快速的对代码进行调整和优化。所以,请不要深究我对重构的概念认识是不是混乱。...至少,开发Resharper的家伙是受不了这种憋屈的,于是大开大阖版的参数列表出现了,长长的参数重载被列表的形式展现出来,当你在使用GDT+方法,看到巨大的参数重载时,你会从心底里发出感叹:卖蛋糕的。

1.8K10

Resharper上手指南

因为你不再需要“重构”菜单了。如果是以前版本,比如2.0,似乎需要您手工的完成这一步,方法如下: 工具——自定义——重排命令,然后把“重构”菜单删除,毫不犹豫地!   ...为你简化当前的臃肿代码 你的代码如果被Resharper视为多余的,那么会灰色标识出来,例如: this.Text = "标题栏文本"   //this为灰色 btnOK.Click += new...Resharper进阶六:重构才是王道(上) 重构是一种精神,证明你在致力于提供高效的、精炼的、健壮的代码,而不是凌乱的、晦涩的、漏洞百出的代码。...关于Resharper重构功能就是这些,我可能天真地把很多额外功能都算在重构里了,但是它确实能够帮助你快速的对代码进行调整和优化。所以,请不要深究我对重构的概念认识是不是混乱。...至少,开发Resharper的家伙是受不了这种憋屈的,于是大开大阖版的参数列表出现了,长长的参数重载被列表的形式展现出来,当你在使用 GDT+方法,看到巨大的参数重载时,你会从心底里发出感叹:卖蛋糕的

1.7K60

离写出大师级代码只差这一步

当然你可以一次修改全部不符合规范 使用ReSharper重构你的代码 大师就是通过不断的重构自己的代码得到提升的你知道吗。大师能第一次就写出没有bug的代码,但经典的代码绝对不是一次能写出来的。...必须通过不断的重构才能实现。...而想要进入大师这个阶段你还得不断的重构你的代码,精益求精是没有底的。 如何有效重构你的代码,重构出更加简洁的代码,ReSharper可以帮你更快的在这一阶段有更大进步。...下面看一下ReSharper重构的实现(更多高级功能请看官方网站或google相关内容) (http://www.jetbrains.com/resharper/whatsnew/index.html...可以把过定义的一些字符串常量或提示直接移动到资源文件 ? 重构后 ? ? 重构后 ? 等等强大功能,让一对很乱的代码,点几下鼠标就就变成经典。

57060

如果不用 ReSharper,那么 Visual Studio 2019 能还原 ReSharper 多少功能呢?

能获得 ReSharper 的此功能效果,对另一部分人来说无法替代 ReSharper 有可能 Visual Studio 在此功能上另辟蹊径比 ReSharper 更厉害,但综合效果不如 ReSharper...实际上你也可以配置 Visual Studio 的智能感知在更多的情况下出现,请打开下面“工具”->“选项”->“文本编辑器”->“C#”->“IntelliSense”: 打开“键入字符后显示完成列表”和“删除字符后显示完成列表...默认情况下输入未知类型时只能完整输入类名然后使用重构快捷键将命名空间导入: 但开启了此选项后,只需要输入类名的一部分,哪怕此类型还没有写 using 将其导入,也能在智能感知提示中看到并且完成输入。...提取局部变量 在 ReSharper 中,选中一段代码,如果这段代码可以返回一个值,那么可以使用重构快捷键(默认 Alt+Enter)生成一个局部变量。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

35730

利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误

于是,ReSharper 会给出警告,并给出推荐的写法;如果遵循 ReSharper 的建议,ReSharper 将自动为我们修改代码。 ? ▲ 给出警告,并提供建议 ?...Suppression key:AssertEqualToInstanceOfType (可选)只有指定了用于阻止检查的标识字符串,才可以在特殊情况下用以下几种方法阻止检查;否则你将对错误无能为力。...")] 上面的 Description:建议简化成 InstanceOfType 提升可读性。...下面的 Description:简化成 InstanceOfType 这将在在 Alt+Enter 时出现的重构列表中显示 ?...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布

1.5K00

【愚公系列】2021年12月 Python教学课程 23-面向对象编程-运算符重载

文章目录 一、运算符重载 一、运算符重载 运算符重载,是对已有的运算符进行重新定义,赋予其另一种功能,适应不同的数据类型。...Python 语言本身提供了很多魔法方法,它的运算符重载就是通过重写这些 Python 内置魔法方法实现的。...这些魔法方法都是以双下划线开头和结尾的,类似于__X__的形式,python 通过这种特殊的命名方式来拦截操作符,实现重载。...函数调用 X(*args, **kargs) __getattr__ 点号运算 X.undefined __setattr__ 属性赋值语句 X.any = value __delattr__ 属性删除...,所以当我们类A的实例对象newlst调用+号运算符时,并没有像lst一样,添加新的成员,而只是输出字符串(这就是重构运算符方法)。

31520

编写让别人能读懂的代码

isNotRemeberMe) { } 重构后: if (isRemeberMe) { } 不管你有没有见过这样的条件,反正我见过。见到这样的条件判断,我顿时就晕了。...(Magic number)就是一个魔法数字,读者完全弄不明白你这个数字是什么,这样的代码平时见的多了 6.复杂的条件判断 反例: if (job.JobState == JobState.New...五.利用先进的生产工具 vs插件中的Reshaper为例,本文列举的大部分反例,Reshaprer均能给予不同程度的提示。...光标移动在波浪线处,然后Alt+Enter,Resharper 会自动对代码进行优化。 如果你能够避免本文总结的反例,你的代码就已经具备了优秀代码应有的基因。...如果想了解更多相关内容,请阅读《代码大全》,《代码整洁之道》,《重构 改善既有代码的设计》,《敏捷软件开发 原则、模式与实践》。

75380

.net持续集成单元测试篇之单元测试简介以及在visual studio中配置Nunit使用环境

由上面的两个图中可以看出TDD与传统开发模式的区别:先编写一个会失败的测试,然后创建产品代码,并确保这个测试通过,接下来是重构代码或者创建另一个会失败的测试。...使用Resharper运行单元测试 Resharper为VisualStudio的一个插件,集成了很多功能,其中包含单元测试运行功能.如果你的VisualStudio里安装的Resharper插件,也可以使用...如果安装了Resharper,VisualStudio的主菜单里会出现Resharper菜单,执行以下图示操作便可以打开Resharper Unit Test Explorer ?...如果我们的单元测试中包含外部依赖(理想状态下不应该包含),往往外部依赖的变化会导致单元测试结果的变化.另外,单元测试编写的不恰当也会引起测试结果的变化.外部依赖的变化往往由于项目本身原因耦合度太高,一时又无法重构但仍然需要单元测试...,并非windows explorer或者其它)里面,启动后还要删除查找内容,如果不删除则其它的方法都无法展示出来了.Resharper提供了一些非常贴心的简便功能,可以直接在类内部直接启动单元测试,而不需要到

3.3K30

写让别人能读懂的代码

isNotRemeberMe) { } 重构后: if (isRemeberMe) { } 不管你有没有见过这样的条件,反正我见过。见到这样的条件判断,我顿时就晕了。...} 所谓魔数(Magic number)就是一个魔法数字,读者完全弄不明白你这个数字是什么,这样的代码平时见的多了 6.复杂的条件判断 反例: if (job.JobState == JobState.New...四.关于DRY 平时大家重构代码,一个重要的思想就是DRY。我要分享一个DRY的反例: 项目在架构过程中会有各种各样的MODEL层,例如:DomainModel,ViewModel,DTO。...五.利用先进的生产工具 vs插件中的Reshaper为例,本文列举的大部分反例,Reshaprer均能给予不同程度的提示。...光标移动在波浪线处,然后Alt+Enter,Resharper 会自动对代码进行优化

90550

JetBrains再出手,这次要干翻老对手了。。

统一 JetBrains 所有 C++ 工具(即 CLion、Rider 和 ReSharper C++)的用户体验。...CLion Nova 的性能优势主要在于: 更快的高亮显示速度,尤其是在代码增量更新的情况下 响应速度更快的 UI 查找使用速度更快 重构时的冻结和挂起情况显着减少 更快的测试索引 此外,CLion Nova...还增添了一些 CLion Classic 中未包含的新功能: 新的重构,例如引入字段、引入命名空间别名、引入 using 枚举以及转换为作用域枚举。...不过,JetBrains 的 clangd 分支仍然与新引擎一起运行,执行各种任务(ClangFormat、Clang-Tidy、MISRA 检查、数据流分析等)。...ReSharper C++ 仅适用于 Windows,而 Rider 则支持跨平台。

33310

ReSharper 在 C 盘占用了太多空间了,本文告诉你如何安全地删除或转移这些文件

本文将告诉你如何安全地删除这些文件来释放你的 C 盘空间,然后在 ReSharper 中设置其他的缓存目录。...好的,吐槽就到这里,我们进入正题——删除这些文件。 删除 ReSharper 的缓存目录 注意:只有 Transient 文件夹是可以删除的!...不过 ReSharper 竟然在这里堆了这么多。 image.png 删除掉这个文件夹不影响 ReSharper 及其他 JetBrains 全家桶的正常运行。...而实际上 ReSharper 在你的电脑上积攒久了是众多缓存文件一起占用的太多空间,只删除最近正在使用的这个项目其实根本释放不了多少空间的。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布

1.5K40

通过设置启用 Visual Studio 默认关闭的大量强大的功能提升开发效率

使用 Visual Studio 开发 C#/.NET 应用程序,以前有 ReSharper 来不足其各项功能短板,后来不断将 ReSharper 的功能一点点搬过来稍微好了一些。...不过直到 Visual Studio 2019,才开始渐渐可以和 ReSharper 拼一下了。 如果你使用 Visual Studio 2019,那么像本文这样配置一下,可以大大提升你的开发效率。...可以把空白字符都显示出来,这样你可以轻易看到对齐问题以及多于的空格了 C# 在 “文本编辑器” -> “C#” -> “IntelliSense” 分类中,我们关心这些设置: 键入字符后显示完成列表 删除字符后显示完成列表...null 的引用分析 IDE 功能 这个功能可能还没有完成,暂时还是无法开启的 当然也有其他可以打开玩的: 启用完成解决方案分析 这是基于 Roslyn 的分析,Visual Studio 的大量重构功能都依赖于它...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布。

30220

【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(重构篇)

这时,代码需要优化、需要对某些值抽取为变量,增加代码可读性,方便维护。下面介绍这些实用的快捷键。...这个快捷键还是比较常用的,典型的应用场景: 将魔法值抽取成有语义的变量 这里的2和2+3语义就不明确,属于魔法值需要尽量避免的。...通过该快捷键就可以抽取本地变量进行描述,如下: 将多次出现的值(比如字符串)抽取成为变量,方便阅读和维护 Introduce Field Action Name Key Introduce...该快捷键就非常非常常用喽,毕竟一般来讲魔法值大都可以改为常量来描述,语义更加明确。...不过,一般来讲,使用普通删除即可,方便快捷。 ✍总结 本文继续介绍了IDEA 重构相关的快捷键,结合Java强类型语言的特性,正确的使用IDEA提供的重构功能,能够控制风险,大大降低重构的“难度”呀。

74240

C#.NET 中的契约

LocalizationRequired 表示参数字符串需要被本地化。 NotNull 表示参数或返回值不可能为 null。...PathReference 表示参数字符串是一个路径。 Pure 表示方法不会修改任何状态(这意味着如果连返回值都不用,那调用了也相当于什么都没做)。...RegexPattern 表示参数字符串是一个正则表达式(会被 ReSharper 代码着色)。...实际应用 事实上在 GitHub 中,使用各种契约的都有,不过 ReSharper Annotations 和 System.Diagnostics.Contracts 的居多;C#8.0 的可空引用类型等到...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.com ),不得用于商业目的,基于本文修改后的作品务必相同的许可发布

89210

2-nameof 运算符

然后我们就直接把args这个名字给重构了,but,把 throw new ArgumentNullException("args"); 给忘了(resharper重构可能会同时重构这个名字),因为它仅仅是个字符串...,书写的时候容易拼错,重构的时候也无法对它进行一个是否需要重构的分析,导致一些麻烦事情。...2. nameof 运算符 nameof是C#6新增的一个关键字运算符,主要作用是方便获取类型、成员和变量的简单字符串名称(非完全限定名),意义在于避免我们在代码中写下固定的一些字符串,这些固定的字符串在后续维护代码时是一个很繁琐的事情...3. nameof 注意事项 nameof可以用于获取具名表达式的当前名字的简单字符串表示(非完全限定名)。注意当前名字这个限定,比如下面这个例子,你觉得会输出什么结果?...第二个语句输出了"ConsoleColor",因为它是System.ConsoleColor的简单字符串表示,而非取得它的完全限定名,如果想取得"System.ConsoleColor",那么请使用 typeof

60050

WPF 使用 Resharper 更改命名空间后生成文件引用找不到的命名空间

Resharper 更改全部命名空间之后,在 xx.g.cs 文件里面的 using 用了一个之前的命名空间,但是代码里面没有地方使用,此时构建不通过,原因是 xaml 里面存在引用 在安装 Resharper...之后,可以右击某个文件夹或项目,点击 Refactor -> AdjustNamespaces 批量更改命名空间 尽管 Resharper 会将大量的 xaml 的元素改对了命名空间,但是有些没有用到的标签就没有改全...解决方法有两个 第一个解决方法就是删除 xaml 里面的这些引用,可以全局搜寻,替换字符串 第二个方法是自己写一个空白的命名空间,因为如果 xaml 太多的话,需要改很久,写一个空白的命名空间就可以 namespace

99810

Java 开发技巧:减少魔法值的使用

前言 重构老代码中遇到了类似这种写法: public void attend(String value) { if ("0".equals(value)) {...里面的 0 和 1 统称为魔法值 。 上面的代码我们往往需要通过上下文推断出来,如果是非常复杂的业务或者十年前的代码那就更惨了,搞不好文档也没有。所以我们要尽量避免出现魔法值。...今天就来讲几种避免魔法值的操作。 2. 避免魔法值的一些操作。 一般魔法值都是不经常变动的。对于魔法值的处理要结合业务和作用域。...MALE } 很多情况这种写法就够用了,你可以通过 GenderEnum.MALE.ordinal() 获取对应枚举的数字序号,也可以通过GenderEnum.MALE.name() 获取对应枚举的字符串名称...我们给自己再增加点需求,达到你的枚举更加友好的可读性。

1.6K10
领券