这是我的代码:错误嵌入式报表
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else SoundPlayer iPlay = new SoundPlayer(@TxtBeepFile.Text);
iPlay.Play();
而这里的错误:
Embedded statement cannot be a declaration or labeled statement
如果这是不可能的,能告诉我怎么?
这是我的代码:错误嵌入式报表
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else SoundPlayer iPlay = new SoundPlayer(@TxtBeepFile.Text);
iPlay.Play();
而这里的错误:
Embedded statement cannot be a declaration or labeled statement
如果这是不可能的,能告诉我怎么?
iPlay.Play();
超出了您的if-else
声明中您的else
子句的范围。尝试使用大括号括住多行范围。
if (RdoBtnBeepDefault.Checked)
{
SystemSounds.Beep.Play();
)
else
{
SoundPlayer iPlay = new SoundPlayer(TxtBeepFile.Text);
iPlay.Play();
)
这是我建议你总是使用大括号即使只用一行的最大原因**。 –
@PreetSangha即使我对每个if-else子句都有一行,我用它把它括在大括号中。 :D我不知道为什么我无法阻止自己这样做......嘿, –
不仅如此,即使这可以产生相同的误差
if (RdoBtnBeepDefault.Checked) SystemSounds.Beep.Play();
else int i=0;
原因是逻辑。如果您在if条件中放入单行语句,则间接意味着条件流以该行结束。在这种情况下,如果您使用某些声明||如上所述,这将不会以任何方式理解/影响,那意味着它是一种字符串文字。这并非完全错误,而是不必要的。 Mind c#visual studio编辑器可以减少几乎所有可能的错误和不必要的内存加载。
当你使用大括号时,它表示你可能会在同一个块内使用该变量来获得某些逻辑。所以编辑会允许你这样做。当时VS假设你可以在将来添加代码。所以它只会给你关于该行的警告。没有大括号,它坚定地认为你不打算使用该变量(由于范围)。所以,它将这作为错误。
错误是因为除非使用'{大括号}',否则您不能在单个语句if/else中声明变量('iPlay')。 (我认为语言是为避免范围模糊而设计的......) – Cameron