1

I'm C# beginner. Why appear the error (Compiler Error CS0152, A label was repeated in a switch statement. The switch statement contains multiple cases with the value of tag '6') in "case 6:" line, when I write this code:

namespace ConsoleApp1
{
    class Class1
    {
        public int abc { get; set; } 

        public Class1()
        {
            
        }

        public void mTest(int aVal)
        {
            switch(aVal)
            {
                case (2 | 4):
                {
                    break;
                }
                case 5:
                    {
                        break;
                    }
                case 6:
                    {
                        break;
                    }
            }
        }
    }
}
Ken White
  • 123,280
  • 14
  • 225
  • 444
Jesus
  • 11
  • 2
  • 3
    `2 | 4` is a bit operation that is equal to `6`. You have two cases for `6` which is not allowed. If you want to test for either 2 or 4, you have to write `case 2: case 4: your_code; break;` (on multiple lines). – Phil1970 Nov 12 '21 at 01:25

1 Answers1

1

You're almost there, but the correct way to pattern match that condition is:

case 2 or 4:
    break;
Blindy
  • 65,249
  • 10
  • 91
  • 131