Non seulement que même cela peut produire la même erreur
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else int i=0;
La raison est logique. Si vous mettez une instruction de ligne unique dans la condition if else, cela signifie indirectement que le flux conditionnel se termine avec cette ligne. Dans ce cas, si vous utilisez une déclaration || quelque chose comme ci-dessus qui n'aura aucun sens/impact d'une manière ou d'une autre, alors cela signifie que c'est une chaîne littérale. Ce n'est pas tout à fait faux, c'est plutôt inutile. Mind C# éditeur de studio visuel réduit presque toutes les erreurs possibles et le chargement de la mémoire inutiles. Lorsque vous placez des accolades, il indique que vous pouvez utiliser cette variable dans le même bloc pour une certaine logique. Donc, l'éditeur vous permettra de faire cela. À ce moment, le VS suppose que vous pouvez ajouter le code à l'avenir. Donc, il vous donnera seulement un avertissement à propos de cette ligne. Sans accolades, il est supposé que vous n'allez pas utiliser cette variable (en raison de la portée). Donc, cela prend cela comme erreur.
L'erreur est que vous ne pouvez pas déclarer une variable ('iPlay') dans une instruction unique si/sinon, sauf si vous utilisez' {accolades} '. (Je pense que le langage a été conçu de cette façon pour éviter l'ambiguïté de portée ...) – Cameron