6

这是我的代码:

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

iPlay.Play();

这是错误:

Embedded statement cannot be a declaration or labeled statement

如果这不可能,介意告诉我怎么做吗?

4

2 回答 2

9

iPlay.Play();超出了您声明​​中的else条款的范围。if-else尝试用大括号将其括起来以获得多行范围。

if (RdoBtnBeepDefault.Checked) 
{
    SystemSounds.Beep.Play();
)
else
{ 
    SoundPlayer iPlay = new SoundPlayer(TxtBeepFile.Text);
    iPlay.Play();
)
于 2012-09-18T01:25:36.970 回答
3

不仅如此,即使这样也会产生同样的错误

if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else int i=0;

原因是逻辑。如果您在 if else 条件中放入单行语句,这间接意味着条件流以该行结束。在那种情况下,如果你使用一些声明||上面的东西不会以任何方式有意义/影响,那么这意味着它是一种字符串文字。这并不完全是错误的,而是不必要的。Mind c# Visual Studio Editor 减少了几乎所有可能的错误和不必要的内存加载。

当您放置大括号时,它表明您可以在同一块中使用该变量来执行某些逻辑。所以编辑器会允许你这样做。那时 VS 假设您将来可以添加代码。所以它只会给你关于那条线的警告。没有大括号,它坚定地假设您不会使用该变量(由于范围)。因此,它将其视为错误。

于 2014-03-13T05:43:58.687 回答