C# does NOT support implicit fall-through from one case label to another, unlike C or C++. Each case block must explicitly end with a break, return, goto, throw, or similar statement. The only exception is empty case labels that immediately follow each other. This design prevents accidental fall-through bugs that are common in C-style languages.