格式化几个几乎相同的函数的更有效方法?

我想知道是否有一种更有效的方式格式化以下代码:


    private void nmudc1_Enter(object sender, EventArgs e)

    {

        SelectAllNumericalUpDownText(nmudc1);

    }


    private void nmudc1_Click(object sender, EventArgs e)

    {

        SelectAllNumericalUpDownText(nmudc1);

    }


    private void nmudc2_Enter(object sender, EventArgs e)

    {

        SelectAllNumericalUpDownText(nmudc2);

    }


    private void nmudc2_Click(object sender, EventArgs e)

    {

        SelectAllNumericalUpDownText(nmudc2);

    }

等等。


对于在此之前或其他地方提出的要求,我深表歉意,并且我认为答案相对简单。不幸的是,到目前为止,我一直没有找到合适的答案。


我曾考虑过尝试放入一个数组或一个对象中,但是我真的不知道如何对这样的函数执行此操作。


谢谢你。


拉丁的传说
浏览 139回答 3
3回答

HUWWW

由于代码示例中的所有事件处理程序都具有相同的方法签名,因此您可以简单地使用相同的方法来处理所有事件:private void NumericUpDown_event(object sender, EventArgs e){    SelectAllNumericalUpDownText(sender as NumericUpDown); }当然,这是假设您的发件人对象实际上是个NumericUpDown。

茅侃侃

您可以使用以下替代方法:&nbsp; &nbsp; private void NumericUpDown_Event(object sender, EventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if (!(sender is <controltype> nump))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;&nbsp; &nbsp; &nbsp; &nbsp; SelectAllNumericalUpDownText(nump);&nbsp; &nbsp; }这样,如果发件人的类型不是<controltype>,则不会调用该方法。因此,您已经使用了通用EventArgs类,可以在此方法下输入Enter / Click事件。
打开App,查看更多内容
随时随地看视频慕课网APP