哪个事件处理程序实现提供更多性能?

时间:2013-01-26 13:10:04

标签: c# performance event-handling

我为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;
        }

    }

4 个答案:

答案 0 :(得分:1)

方法1

会更好,因为他们是直接的并且知道他们也在回应那个控制

关于

方法2

每次将sender(对象)转换为TextBox,然后switch语句决定控件上的Operation。

所以很明显,Method1会更有效


也请看一下这些链接:How expensive is CastingPerformance of Typecasting

答案 1 :(得分:1)

理论上,第一种方法更快。实际上,你不会注意到任何差异。如果您的处理程序共享大量代码,则使用switch是一种完全可以接受的减少代码重复的方法。

答案 2 :(得分:0)

没有性能差异。如果两个文本框具有一些常用功能或者应该以相同方式检查,那么为两个文本框设置一个处理程序也没有错。您可以改进的是 - 不要通过字符串名称检查文本框,更好地使用它们的变量名称,如:

if(txtbx.Equals(txtcode))
     //...

如果您稍后重构代码,它将为您节省大量时间:)

答案 3 :(得分:0)

性能没有差异!!!!!!