请向我提供有关选项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
}
}
答案 0 :(得分:3)
想象一下:这是深夜,你正在查看这段代码,你就到了那条线,并想知道:13
究竟是什么意思?是13十进制,还是13十六进制?如果它是41那会是什么意思?
这一切都归结为代码可维护性 - 使用预设枚举(特别是当它已经为您提供时,无需工作)比直接ASCII代码更易于维护和读取。
当然,ASCII代码有效,而且它们是旧的skool和坏屁股,但是枚举减少了误解概念的可能性。
答案 1 :(得分:1)
很明显,选项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 等意味着什么:)。 重要的是为您的变量赋予有意义的名称,而不是在源代码中使用丢失的数字或字符串等。
答案 2 :(得分:0)
选项1更清晰,更易于阅读。你没有理由想要像这样投出数值。
答案 3 :(得分:0)
使用选项1:
答案 4 :(得分:0)
if (e.KeyCode == Keys.Enter)
的选项1更好:
(char) 27
或(char) 9
? Keys.Escape
很明显Keys.D1
或Keys.NumPad1