这是我的代码:
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else SoundPlayer iPlay = new SoundPlayer(@TxtBeepFile.Text);
iPlay.Play();
这是错误:
Embedded statement cannot be a declaration or labeled statement
如果那是不可能的,请记住我是怎么做的?
答案 0 :(得分:9)
iPlay.Play();
超出了else
声明中if-else
条款的范围。尝试用多个行范围的大括号将其括起来。
if (RdoBtnBeepDefault.Checked)
{
SystemSounds.Beep.Play();
)
else
{
SoundPlayer iPlay = new SoundPlayer(TxtBeepFile.Text);
iPlay.Play();
)
答案 1 :(得分:3)
不仅如此,即使这会产生相同的错误
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else int i=0;
原因是逻辑。如果在if else条件中放置单行语句,则间接表示条件流以该行结束。在这种情况下,如果您使用某些声明||某些东西,这将无论如何都没有意义/影响,那么这意味着它是一种字符串文字。这不完全是错的,而是不必要的。 Mind c#visual studio编辑器可以减少几乎所有可能的错误和不必要的内存加载。
当你添加大括号时,它会暗示您可以在同一个块中使用该变量来表示某些逻辑。所以编辑器会允许你这样做。那时VS假设您将来可能会添加代码。所以它只会给你关于那条线的警告。没有大括号,它坚定地假设您不会使用该变量(由于范围)。因此,它将其视为错误。