为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
拉丁的传说 2021-04-01 08:12:33
我想知道是否有一种更有效的方式格式化以下代码:    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);    }等等。对于在此之前或其他地方提出的要求,我深表歉意,并且我认为答案相对简单。不幸的是,到目前为止,我一直没有找到合适的答案。我曾考虑过尝试放入一个数组或一个对象中,但是我真的不知道如何对这样的函数执行此操作。谢谢你。
查看完整描述

3 回答

?
HUWWW

TA贡献1874条经验 获得超12个赞

由于代码示例中的所有事件处理程序都具有相同的方法签名,因此您可以简单地使用相同的方法来处理所有事件:


private void NumericUpDown_event(object sender, EventArgs e)

{

    SelectAllNumericalUpDownText(sender as NumericUpDown); 

}

当然,这是假设您的发件人对象实际上是个NumericUpDown。


查看完整回答
反对 回复 2021-04-10
?
茅侃侃

TA贡献1842条经验 获得超21个赞

您可以使用以下替代方法:


    private void NumericUpDown_Event(object sender, EventArgs e)

    {

        if (!(sender is <controltype> nump))

           return;


        SelectAllNumericalUpDownText(nump);

    }

这样,如果发件人的类型不是<controltype>,则不会调用该方法。因此,您已经使用了通用EventArgs类,可以在此方法下输入Enter / Click事件。


查看完整回答
反对 回复 2021-04-10
  • 3 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信