C# – way to make the switch/case fall through to the next case in C#

cswitch statement

I'm using a switch/case statement to handle some updates for a deployed application. Basically, I want to waterfall through the cases to perform the update from the current running version to the newest version.

From Visual Studio yelling at me, I learned that C# does not allow falling through to the next case (exactly what I'm trying to do). From this question, I learned how to do what I want to do. However, it is still apparently an error.

What I've got is

switch (myCurrentVersion)
{
    case null:
    case "":
    case "0":
        UpdateToV1();
        goto case "1";
    case "1":
        UpdateToV2();
}

I'm getting the following error on the line case "1"::

Error 1 Control cannot fall through from one case label ('case "1":') to another

Am I doing something wrong? How can I force it to fall through?

Best Answer

You need to add a break statement even if it's the last case:

switch (myCurrentVersion)
{
    case null:
    case "":
    case "0":
        UpdateToV1();
        goto case "1";
    case "1":
        UpdateToV2();
        break;
}