No sólo eso, incluso esto puede producir el mismo error
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else int i=0;
La razón es lógica. Si pones una declaración de una sola línea en la condición if else que indirectamente significa que el flujo condicional está terminando con esa línea. En ese caso, si usa alguna declaración || algo como el anterior que no tendrá sentido/impacto de ninguna manera, entonces eso significa que es una especie de cadena literal. No es exactamente incorrecto, más bien es innecesario. El editor visual studio de Mind C# reduce casi todos los errores posibles y la carga de memoria innecesaria.
Cuando pones llaves, indiactes que puedes usar esa variable dentro del mismo bloque por alguna lógica. Entonces el editor te permitirá hacer eso. En ese momento, el VS supone que puede agregar el código en el futuro. Entonces solo le dará una advertencia sobre esa línea. Sin llaves, supone sólidamente que no va a usar esa variable (debido al alcance). Por lo tanto, se necesita como error.
El error se debe a que no se puede declarar una variable ('iPlay') en una declaración única if/else, a menos que use' {llaves} '. (Creo que el lenguaje fue diseñado de esa manera para evitar la ambigüedad del alcance ...) – Cameron