2014-02-26 52 views
2

我對c#很陌生,這是一個當前非常基本的Windows窗體來查找一些Autocad變量。我只是試圖弄清楚爲什麼它給了我;在我所有的「if」陳述之後都會有所期待。它必須是非常簡單的東西......否則我錯了。對IF語句的分號預期

任何幫助,非常感謝。謝謝!

請注意,我已經試過並在每個末尾都沒有分號,我仍然得到錯誤。

private void doneButton_Click(object sender, EventArgs e) 
    { 

     int findValue = 0; 

     //int none = 0; 
     //int clearAll = 1024; 

     int endpoint = 1; 
     int midpoint = 2; 
     int center = 4; 
     int node = 8; 
     int quadrant = 16; 
     int intersection = 32; 
     int insertion = 64; 
     int perpendicular = 128; 
     int tangent = 256; 
     int nearest = 512; 
     int apparentIntersection = 2048; 
     int extension = 4096; 
     int parallel = 8192; 

     if (cbxEndpoint.Checked) {findValue += endpoint}; 
     if (cbxMidpoint.Checked){findValue += midpoint}; 
     if (cbxCenter.Checked){findValue += center}; 
     if (cbxNode.Checked){findValue += node}; 
     if (cbxQuadrant.Checked){findValue += quadrant}; 
     if (cbxIntersection.Checked){findValue += intersection}; 
     if (cbxInsertion.Checked){findValue += insertion}; 
     if (cbxPerpendicular.Checked){findValue += perpendicular}; 
     if (cbxTangent.Checked){findValue += tangent}; 
     if (cbxNearest.Checked){findValue += nearest}; 
     if (cbxApparent.Checked){findValue += apparentIntersection}; 
     if (cbxExtension.Checked){findValue += extension}; 
     if (cbxParallel.Checked){findValue += parallel}; 
     if (cbxNone.Checked){findValue = 0}; 


    System.IO.StreamWriter file = new System.IO.StreamWriter(@"N:\C3D Support\MySettings.txt"); 
    file.WriteLine("OSNAPS," + findValue); 
    file.Close(); 


     Environment.Exit(0); 


     } 

回答

2

你應該使用它像括號內的每一行代碼後,該

if (cbxEndpoint.Checked) {findValue += endpoint;} 

分號。 if塊不需要分號結束。

作爲替代,因爲你如果的是一條線,他們可以去掉括號寫:

if (cbxEndpoint.Checked) findValue += endpoint; 

括號內是唯一的需要,如果有更多的代碼比一個線的時候,如果是真正的執行。 寫我的代碼時,我更喜歡這種形式:在大括號{}之間

if (cbxEndpoint.Checked) 
{ 
    findValue += endpoint; 
} 

if (cbxEndpoint.Checked) 
    findValue += endpoint; 
+0

你太棒了。謝謝你讓我覺得自己像個白癡一樣。 ; P – smakfactor1

+0

沒問題。很高興幫助...如果你喜歡,請投票並接受答案。 :) – RacerNerd

+0

我沒有足夠的投票聲望。 :( – smakfactor1

0

的語句需要一個分號結束。不是'if'聲明本身。

你的代碼將更具可讀性,你可能能夠找到這些錯誤更容易,如果你放在一個新行每個語句,就像這樣:

if (cbxEndpoint.Checked) 
{ 
    findValue += endpoint 
} 

現在的問題是顯而易見的。

+0

這會讓事情變得更加明顯,是的。多謝你們! – smakfactor1