初级代码游戏的专栏介绍与文章目录-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 绝不要在测试后使用代码清理
这个是死亡线。测试通过的代码一个空格都不能改。
(这里是文档结束)