我对 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;
}
}
方法 1
会更好,因为他们是直接的,并且知道他们也在回应这种控制
关于
方法 2
每次将发送方(对象)强制转换为文本框时,开关语句都会决定控件上的操作。
所以很明显,Method1
会更有效
也看看这些链接: 铸造有多贵, 类型转换的性能
从理论上讲,第一种方法更快。实际上,您不会注意到任何差异。如果处理程序共享大量代码,则使用 switch
是减少代码重复的完全可以接受的方法。
没有性能差异。如果两个文本框具有一些通用功能或应以相同的方式检查,则为两个文本框使用一个处理程序也没有错。您可以改进的是 - 不要通过字符串名称检查文本框,最好使用它们的变量名称,例如:
if(txtbx.Equals(txtcode))
//...
如果以后重构代码,将节省大量时间:)
性能没有差异!!!!!