none
問一個C#的基本問題..... RRS feed

  • 問題

  • 大家好, 以前大部份用VB, 這陣子也開始學C#, 想請教一下,

    C# 的 if 如果不加大弧號, 有什麼差別,

    因為有段程式我覺得怪怪的....

    比如圖一和圖二, 只多加了一行, 圖二的下面MessageBox.Show("B"),

    這段就執行不到了, 我看MSDN裏用法, 都是要加大弧號, 像

    if ()
    {
    }
    else
    {
    }

    像這種不加大弧號是差在哪裏?

    圖一




    圖二
    • 已編輯 ed0507 2014年12月24日 上午 11:22
    2014年12月24日 上午 11:19

解答

  • 如果 if/else 沒有加大括號,就只會執行到該段的下一行。

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已提議為解答 No.18MVP 2014年12月25日 上午 01:46
    • 已標示為解答 ed0507 2014年12月25日 上午 03:24
    2014年12月24日 上午 11:34
    版主
  • 不加大括號,只會執行if or else底下的"一行"程式。圖一的例子在else底下是continue就直接回到迴圈的一開始,所以省略大括號。圖二的例子continue並非為elseif成立時要執行的程式,而是無論如何都會執行continue,所以下面的System.Windows.Forms.MessageBox.Show("B")被編譯棄標註成不可能會執行的程式碼。
    • 已提議為解答 No.18MVP 2014年12月25日 上午 01:46
    • 已標示為解答 ed0507 2014年12月25日 上午 03:24
    2014年12月24日 下午 03:43

所有回覆

  • 如果 if/else 沒有加大括號,就只會執行到該段的下一行。

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已提議為解答 No.18MVP 2014年12月25日 上午 01:46
    • 已標示為解答 ed0507 2014年12月25日 上午 03:24
    2014年12月24日 上午 11:34
    版主
  • 不加大括號,只會執行if or else底下的"一行"程式。圖一的例子在else底下是continue就直接回到迴圈的一開始,所以省略大括號。圖二的例子continue並非為elseif成立時要執行的程式,而是無論如何都會執行continue,所以下面的System.Windows.Forms.MessageBox.Show("B")被編譯棄標註成不可能會執行的程式碼。
    • 已提議為解答 No.18MVP 2014年12月25日 上午 01:46
    • 已標示為解答 ed0507 2014年12月25日 上午 03:24
    2014年12月24日 下午 03:43
  • 感謝小朱兄以及james.tsai的說明....
    2014年12月25日 上午 03:27