就良好的编程而言,使用键枚举或 Ascii 代码更好
本文关键字:枚举 Ascii 更好 代码 编程 | 更新日期: 2024-10-31 14:10:47
请向我提供以下代码视图..在选项 1 和选项 2 上用于更好的 C# 编程实践。
private void textBox1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
// Option 1
if (e.KeyCode == Keys.Enter )
{
// some code
}
//Option 2
if (e.KeyCode == (char)13)
{
// some code
}
}
想象一下
意图的机会。:现在是深夜,你正在浏览这段代码,你到了那一行,想知道:13
到底是什么意思?那是 13 个十进制,还是 13 个十六进制?如果是 41 怎么办——这意味着什么?
这一切都归结为代码可维护性 - 使用预设枚举(特别是当它已经为您提供时,不需要任何工作)比直接的 ASCII 代码更易于维护和可读。
当然,ASCII 代码有效,它们是旧的 skool 和坏屁股,但枚举减少了任何误解
很明显,选项 1 更具可读性。尽可能使用枚举。
一般来说,在源代码中直接使用数字不是一个好的做法。
因此,如果您手头没有枚举或不想创建自己的枚举,而不是执行以下操作:
if (myObject.Position.X > 25)
最好这样做:
int leftBorder = 13;
if (myObject.Position.X > leftBorder)
乍一看,这似乎并不那么重要,但作为开发人员,您有时会看到这样的代码
mObj.SetVl = Global.iValue + 27 - (Global.uValue * 2);
很高兴猜测 27、2、iValue 等是什么意思:)。重要的是为您的变量提供有意义的完整名称,而不是在源代码中使用丢失数字或字符串等。
if (e.KeyCode == Keys.Enter)
的选项 1 更好:
- 它更容易阅读,例如什么是
(char) 27
或(char) 9
?Keys.Escape
显而易见 - 字符和键不是一对一的关系,例如字符"1"可以由
Keys.D1
或Keys.NumPad1
产生
选项 1 更简洁,更易于阅读。没有理由要像这样转换数值。
使用选项 1:
- 它更清洁
- 它更容易阅读
- 如果数值在将来的某个时候发生变化,它仍然有效。