什么是更好的实践:重复代码或使用goto语句?

Onl*_*ind 2 c# goto

我现在正在研究C#,遇到以下情况,有什么更好的实践,重复代码如"EX 1"或使用goto"EX 2"这样的语句?我不想要个人意见.

        // EX 1: 

        switch (a)
        {
            case 3:
                b = 7;
                c = 3; // duplicate code <-|
                break; //                    |
            case 4:    //                    |
                c = 3; // duplicate code --|
                break;
            default:
                b = 2;
                c = 4;
                break;
        }


        // EX 2: 

        switch (a)
        {
            case 3:
                b = 7;
                goto case 4; // not duplicate code and use goto statement
            case 4:
                c = 3;
                break;
            default:
                b = 2;
                c = 4;
                break;
        }
Run Code Online (Sandbox Code Playgroud)

Cyb*_*wiz 5

这真的取决于.

案例3是案例4的特例吗?

在那种情况下,goto可能是有序的,因为如果我们在稍后的时间点向案例4添加一些新的行为,那么我们也将自动获得案例3.

如果案例3和4不相关,那么复制代码会更好.

如果你的真实情况很小,只有很少的行,我宁愿复制代码,因为简单和可读性.