C#如何避免在不同的函数中使用相同的switch语句?

问题描述 投票:0回答:1

我有一个类的接口,并且重写的函数应根据我重写函数的类的状态(枚举)而有所不同。

public class Test
{
    Enm enm = Enm.e1;
    public override fn1()
    {
        switch(enm)
        {
            case Enm.e1:
                {
                    break;
                }
            ...
        }
    }
    public override fn2()
    {
        switch (enm)
        {
            case Enm.e1:
                {
                    break;
                }
            ...
        }
    }
    public override fn3()
    {
        switch (enm)
        {
            case Enm.e1:
                {
                    break;
                }
            ...
        }

    }
}

是否可以进行单个评估并将其用于所有功能?

我是代表的新手,但是为状态为fn1 / fn2 / fn3的代表创建一个代表,并在每次状态更改时使用所需的函数填充它们,也许是一个好的解决方案?

我问,因为我认为对此有更好的解决方案。

谢谢您的帮助:)

c# optimization delegates switch-statement
1个回答
0
投票

此答案可能会因提供更多信息而失效,但是代表们呢?

代表有效地允许您将参数作为参数“上交”。您可以使用Delegate变量将其缩减为一个函数,然后通过该Argument传递代码的变量部分。

界面不是我自己创建的。我只是使用这些函数,并且知道什么时候调用这些函数。

如果无法更改现有代码(足够),请将其包装为完全控制的代码。

© www.soinside.com 2019 - 2024. All rights reserved.