這是我的代碼:錯誤嵌入式報表
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