事件处理程序的哪个实现可提供更高的性能



我对 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))
     //...

如果以后重构代码,将节省大量时间:)

性能没有差异!!!!!

相关内容

  • 没有找到相关文章

最新更新