Nie tylko, że nawet ta może produkować ten sam błąd
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else int i=0;
Powodem jest logika. Jeśli umieścisz instrukcję pojedynczego wiersza w warunku else, który pośrednio oznacza, że przepływ warunkowy kończy się na tej linii. W takim przypadku, jeśli użyjesz jakiejś deklaracji || czegoś jak wyżej, które nie ma sensu/wpływu w jakikolwiek sposób, to znaczy, że jest to rodzaj literału ciągłego. Nie jest to dokładnie błędne, a raczej niepotrzebne. Edytor Visual Studio Mind redukuje prawie wszystkie możliwe błędy i niepotrzebne ładowanie pamięci.
Po wstawieniu nawiasów klamrowych wskazuje, że można użyć tej zmiennej w tym samym bloku dla pewnej logiki. Edytor pozwoli ci to zrobić. W tym czasie VS zakłada, że możesz dodać kod w przyszłości. Więc da ci tylko ostrzeżenie o tej linii. Bez nawiasów solidnie zakłada, że nie użyjesz tej zmiennej (ze względu na zakres). Tak, przyjmuje to jako błąd.
Błąd polega na tym, że nie można zadeklarować zmiennej ('iPlay') w pojedynczej instrukcji if/else, chyba że użyjesz' {nawiasów klamrowych}. (Myślę, że język został zaprojektowany w taki sposób, aby uniknąć niejasności zakresu ...). – Cameron