C# 使用代码清理 以及禁用某个代码清理

初级代码游戏的专栏介绍与文章目录-CSDN博客

我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。

这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。

源码指引:github源码指引_初级代码游戏的博客-CSDN博客


        visual sutdio的功能是很强大的,比如代码格式化、智能分析代码,语法错误立即提示,熟练程序员基本上代码可以一次性编译通过(当然逻辑BUG不能帮你弄)。

        很多程序员的代码是不拘一格的,一看就充满了想象力,如果用一下代码格式化,就拘谨多了。

        除了代码格式化,C#还有代码清理功能,能自动重写代码,将写得不漂亮的代码加工润色一下,用上最新的语法糖,然后感觉就不象是自己写的了(最新的语法糖我都看不懂)。

目录

一、使用代码清理

二、如果无法编译

三、排除个别错误优化

四、操作建议

4.1 尽可能早使用代码清理

4.2 在边写边使用代码清理

4.3 不要在提交测试前使用代码清理

4.4 绝不要在测试后使用代码清理


一、使用代码清理

        在任何一个源码文件上点右键,“代码清理”菜单的项目有“运行代码清理(配置文件1)”、“运行代码清理(配置文件2)”和“配置代码清理”。

        先看看“配置代码清理”是什么:

        其实看到这里我们基本就明白了,配置文件就是设置进行多少项操作。配置文件1默认只包含了很少的选项, 配置文件2默认也一样,但我们可以把所有可用项都添加到配置文件2里面去。

        “可用的修复程序”列表支持用ctrl/shift扩展选择,一次性全选都加进去。然后就可以看看实际效果了,感觉真的不像自己写的。

二、如果无法编译

        这是比较搞笑的,代码优化把代码优化错了,不能编译。但是我们是程序员啊,当然能够理解了,毕竟都是程序处理嘛。

        例如下面的代码:

		private void button_OK_Click(object sender, EventArgs e)
		{
			user_selected=new SortedSet<string>();
			foreach (string c in listBox1.SelectedItems)
			{
				user_selected.Add(c);
			}
			this.DialogResult = DialogResult.OK;
			this.Close();
		}

        优化完这样了:

        没有类型自动转换,所以编译不过去了。

        如果无法编译怎么办呢?找到无法编译的地方,回退到原来的版本(借助版本管理工具可以比较容易地实现),这样应该就能够编译了。

三、排除个别错误优化

        但是下次优化代码还是会被弄坏啊,所以要针对性屏蔽一下。

        可供优化的代码下面会有一个提示:四个点点,鼠标移动上去,会给出提示:

        提示里面的“IDE0028”就是相关的优化项的ID,我们只需要在这段代码的前面禁用这个优化就可以了,不影响其它代码:

		private void button_OK_Click(object sender, EventArgs e)
		{
#pragma warning disable IDE0028
			user_selected = new SortedSet<string>();
			foreach (string c in listBox1.SelectedItems)
			{
				user_selected.Add(c);
			}
#pragma warning restore IDE0028
			this.DialogResult = DialogResult.OK;
			this.Close();
		}

         再次运行代码优化:

        没有优化整个数组的初始化,红框部分是另一个优化规则:忽略的返回值。

四、操作建议

4.1 尽可能早使用代码清理

        因为改动的行会非常多,会让修改记录很吓人。

4.2 在边写边使用代码清理

        这样每次变动都会比较少,容易检查。

4.3 不要在提交测试前使用代码清理

        风险大。

4.4 绝不要在测试后使用代码清理

        这个是死亡线。测试通过的代码一个空格都不能改。


(这里是文档结束)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/879428.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

下载chromedriver驱动

首先进入关于ChromeDriver最新下载地址&#xff1a;Chrome for Testing availability 进入之后找到与自己所匹配的&#xff0c;在浏览器中查看版本号&#xff0c;下载版本号需要一致。 下载即可&#xff0c;解压&#xff0c;找到 直接放在pycharm下即可 因为在环境变量中早已配…

python3GUI--字符串加密方案(附源码)

文章目录 一&#xff0e;前言二&#xff0e;展示1.AES 加密1.介绍优点缺点2.代码3.结果 2.RSA 加密1.介绍优点缺点2.代码3.结果 3.基于 HMAC 的 URL 签名1.介绍优点缺点2.代码3.结果 4.JWT&#xff08;JSON Web Token&#xff09;加密1.介绍优点缺点2.安装3.代码4.结果 三&…

孙怡带你深度学习(2)--PyTorch框架认识

文章目录 PyTorch框架认识1. Tensor张量定义与特性创建方式 2. 下载数据集下载测试展现下载内容 3. 创建DataLoader&#xff08;数据加载器&#xff09;4. 选择处理器5. 神经网络模型构建模型 6. 训练数据训练集数据测试集数据 7. 提高模型学习率 总结 PyTorch框架认识 PyTorc…

1×1卷积核【super star 卷积核】

一、11卷积的作用 我们先来给出11卷积的一般作用&#xff0c;如下所示&#xff1a; • 跨通道的特征整合 • 特征通道的升维与降维 • 减少权重参数&#xff08;卷积核参数&#xff09; 【 简化模型 】 1.1 特征通道的升维与降维/跨通道的特征整合/简化模型 输入数据&…

《深度学习》—— PyTorch的神经网络模块中常用的损失函数

文章目录 前言一、回归模型中常用的损失函数1、平均绝对误差损失&#xff08;L1Loss&#xff09;2、均方误差损失&#xff08;MSELoss也称L2Loss&#xff09;3、SmoothL1Loss 二、分类模型中常用的损失函数1、负对数似然损失&#xff08;NLLLoss&#xff09;2、二元交叉熵损失&…

网络封装分用

目录 1,交换机 2,IP 3,接口号 4,协议 分层协议的好处: 5,OSI七层网络模型. 6,TCP/IP五层网络模型(主流): [站在发送方视角] [接收方视角] 1,交换机 交换机和IP没有关系,相当于是对路由器接口的扩充,这时相当于主机都与路由器相连处于局域网中,把越来越多的路由器连接起…

8-----手机机型维修工具助手 功能较全 涵盖解锁 刷机 修复等选项 维修推荐

上图是一款功能较全的维修加密狗。目前可以无限制 任何人使用。看图片可以了解其中涵盖刷机 解锁 修复分区 查看短接图 安装驱动 修复基带等等选项。而且其中有针对各个机型型号的对应功能操作。以及一些rec5.0相关的操作选项。 通过此博文了解 ★★★★★此工具涵盖的一些…

论文解读《NewsBench:一个评估中文新闻大型语言模型编辑能力的系统评估框架》

引言&#xff1a;感觉这篇文章&#xff0c;对 LLMs 的新闻编辑能力做了一个详细的实验和分析&#xff0c;而且还贡献了一个宝贵的中文新闻数据集&#xff0c;蛮不错的&#xff0c;后面或许可以用起来&#xff0c;就拜读了一下。 这篇博客的题目说是解读&#xff0c;其实大部分…

Java发邮件:如何配置SMTP服务器实现发信?

Java发邮件功能实现的教程&#xff1f;Java发邮件的方式有哪些&#xff1f; 无论是用于用户注册确认、密码重置&#xff0c;还是系统通知&#xff0c;Java发邮件都是不可或缺的一部分。AokSend将详细介绍如何配置SMTP服务器&#xff0c;以便在Java发邮件时能够顺利发送邮件。 …

如何创建和编辑抖音百科词条,不会的找我们代创建!

如何创建和编辑抖音百科词条&#xff0c;不会的找我们代创建&#xff01; 如何创建抖音百科个人词条&#xff0c;个人抖音百科的创建 #抖音百科 #百科 #推广 做过百度百科的老板们注意了&#xff0c;等一下别划走。 2024 年品宣新风口出现了&#xff0c;抖音百科正在替代百度…

Flask-JWT-Extended登录验证

1. 介绍 """安装:pip install Flask-JWT-Extended创建对象 初始化与app绑定jwt JWTManager(app) # 初始化JWTManager设置 Cookie 的选项:除了设置 cookie 的名称和值之外&#xff0c;你还可以指定其他的选项&#xff0c;例如&#xff1a;过期时间 (max_age)&…

erlang学习:mnesia数据库与ets表1

Mnesia 和 ETS 都是 Erlang 提供的表管理工具&#xff0c;用于存储和检索数据&#xff0c;但它们之间有一些重要的区别和共同点。 共同点 都是Erlang提供的表存储机制&#xff1a;ETS 和 Mnesia 都允许你在内存中创建表&#xff0c;并且可以用来存储键值对或者更复杂的数据结…

VC++以资源方式打开可执行文件

刚看一个资料说可以在VC中&#xff0c;以资源方式打开可执行文件&#xff0c;然后它如果包含对话框一些资源&#xff0c;会呈现出来&#xff0c;可以把其他程序界面上的控件直接拷贝到自己程序&#xff1b; 但是操作了一下没有成功&#xff0c; 先新建一个空对话框准备拷贝东…

Modbus_tcp

目录 一&#xff1a;modbus起源 1.起源 2. 分类&#xff1a; 3. 优势&#xff1a; 4. 应用场景&#xff1a; 5.ModbusTCP特点&#xff08;掌握&#xff09;&#xff1a; 二、 ModbusTCP的协议 1. 报文头 2. 寄存器 1. 线圈&#xff08;Coils&#xff09; 2. 离…

【无标题】rocket

rocketMQ集群双主双从同步模式(2m-2s-sync)搭建-CSDN博客 集群架构概念 在部署的时候首先要将nameserver启动起来&#xff0c;之后就是将broker启动起来&#xff0c;broker启动起来会将自己的信息注册到nameserver上面。之后再去创建topic&#xff0c;因为发消息的逻辑和收消…

虹科方案 | 精准零部件测试!多路汽车开关按键功能检测系统

欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; #LIN/CAN总线 #零部件测试 #CAN数据 导读 在汽车制造业中&#xff0c;零部件的安全性、功能性和可靠性是确保车辆整体性能的关键。虹科针对车辆零部件的LIN/CAN总线仿真测试&#xff0c;提出了基于虹科Baby-LIN系列产…

【教程】鸿蒙ARKTS 打造数据驾驶舱---前序

鸿蒙ARKTS 打造数据驾驶舱 ​ 前面2章我介绍了如何通过定义View绘制箭头以及圆形进度&#xff0c;初步了解了鸿蒙如何进行自定义View。接下来我将通过我最近在带的一个VUE的项目&#xff0c;简单实现了几个鸿蒙原生页面。帮助大家快速上手纯血鸿蒙开发. 本项目基于Api11Stage模…

Qt 弹出菜单右键菜单 QMenu 设置不同颜色的子项

概述 在Qt中&#xff0c;可以使用样式表&#xff08;StyleSheet&#xff09;来自定义 QMenu 的外观&#xff0c;包括其子项&#xff08;如菜单项QAction&#xff09;的颜色。但是&#xff0c;这通常可以设置 QMenu 的整体样式&#xff0c;而不能单独设置某个子项的颜色。不过&…

Cobalt Strike的下载与基本用法

CobaltStrike4.8 链接&#xff1a;百度网盘 请输入提取码 提取码&#xff1a;tgf3 what Cobalt Strike是一款渗透测试神器&#xff0c;常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用&#xff0c;它分为客户端与服务端&#xff0c;服务端是一个&…

第六部分:1---进程间通信,匿名管道

目录 进程间通信 进程间通信的目的&#xff1a; 进程间通信的本质&#xff1a; 管道&#xff1a; 管道的定义&#xff1a; 匿名管道 单向通信的管道通路&#xff1a; 进程和文件之间的解耦&#xff1a; 单向管道的读写端回收问题&#xff1a; 管道通信主要实现动态数…