我为2个文本框使用了相同的TextChanged
事件处理程序,所以它们的性能是否提高或者只是可读性问题?
方法1
private void txtcode_TextChanged(object sender, EventArgs e)
{
//Some code
}
private void txtname_TextChanged(object sender, EventArgs e)
{
//Some code
}
方法2
private void txt_TextChanged(object sender, EventArgs e)
{
TextBox txtbx = (TextBox)sender;
switch (txtbx.Name)
{
case "txtname":
//Some code
break;
case "txtcode":
//Some code
break;
default:
break;
}
}
答案 0 :(得分:1)
会更好,因为他们是直接的并且知道他们也在回应那个控制
关于
每次将sender(对象)转换为TextBox,然后switch语句决定控件上的Operation。
所以很明显,Method1
会更有效
也请看一下这些链接:How expensive is Casting,Performance of Typecasting
答案 1 :(得分:1)
理论上,第一种方法更快。实际上,你不会注意到任何差异。如果您的处理程序共享大量代码,则使用switch
是一种完全可以接受的减少代码重复的方法。
答案 2 :(得分:0)
没有性能差异。如果两个文本框具有一些常用功能或者应该以相同方式检查,那么为两个文本框设置一个处理程序也没有错。您可以改进的是 - 不要通过字符串名称检查文本框,更好地使用它们的变量名称,如:
if(txtbx.Equals(txtcode))
//...
如果您稍后重构代码,它将为您节省大量时间:)
答案 3 :(得分:0)
性能没有差异!!!!!!