嵌入语句出错

时间:2012-09-18 01:24:11

标签: c#

这是我的代码:

if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else SoundPlayer iPlay = new SoundPlayer(@TxtBeepFile.Text);

iPlay.Play();

这是错误:

Embedded statement cannot be a declaration or labeled statement

如果那是不可能的,请记住我是怎么做的?

2 个答案:

答案 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假设您将来可能会添加代码。所以它只会给你关于那条线的警告。没有大括号,它坚定地假设您不会使用该变量(由于范围)。因此,它将其视为错误。