2017-04-13 6 views
-4

I次のコードを持っている:問題がある コードが実行されません全て

private void G1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
    { 

      decimal quantity = 0, cost = 0; 
      decimal totalstock = 0, newtotalstock = 0; 
      if (decimal.TryParse(G1.Rows[e.RowIndex].Cells["RealExport"].Value.ToString(), out quantity) && decimal.TryParse(G1.Rows[e.RowIndex].Cells["Cost"].Value.ToString(), out cost)) 
      { 
       decimal price = quantity * cost; 
       G1.Rows[e.RowIndex].Cells["Total"].Value = price.ToString(); 
      } 

      if (decimal.TryParse(G1.Rows[e.RowIndex].Cells["TotalStock"].Value.ToString(), out totalstock) && decimal.TryParse(G1.Rows[e.RowIndex].Cells["RealExport"].Value.ToString(), out quantity)) 
      { 
       newtotalstock = totalstock - quantity; 
       G1.Rows[e.RowIndex].Cells["TotalStock"].Value = newtotalstock.ToString(); 
       return; 
      } 
      decimal avai = 0, newavai = 0; 
      if (decimal.TryParse(G1.Rows[e.RowIndex].Cells["RealExport"].Value.ToString(), out quantity) && decimal.TryParse(G1.Rows[e.RowIndex].Cells["AvailableStock"].Value.ToString(), out avai)) 
      { 
       newavai = avai - quantity; 
       G1.Rows[e.RowIndex].Cells["AvailableStock"].Value = newavai.ToString(); 
       return; 
      } } 

、それだけでコードのうち2を実行

、私が意味する、 newtotalstockが計算され、コードは終了します。

私はまで以上にnewavaiを変更しようとすると、結果は同じですが、それはnewavaiを計算し、newtotalstockを渡します。私はなぜ、すべてのコードが正しいのか分からない。助けてください

+5

それを必要としないのでたぶんそれが原因で復帰'のだ、

void Method() { if() {} if() {} if() {} return; } 

それともまったく行わいけないとして、それをメソッドの最後の行を配置'if'ブロック? – Fabjan

+0

デバッガはあなたの友人です。 – Filburt

+0

@Filburtああ、私がここに質問を持ってきたとき、それはすでに10回以上デバッグしたことを意味する。 – Serenade

答えて

1

単語 "return" ends function、void型メソッドを使用している場合は、特定のポイントで終了しない限り、実際にはreturnを使用する必要はありません。 "return"の後のコードは決して実行されません(例外は使用量 "yield return"の間だけですが、これは別の話です)。あなたは常にあなたのコードにブレークポイントを作る(あなたのウィンドウの左側の境界線をクリックするか、単にそれについて読んで)、その後、あなたのコードが実行されている方法:)作るF10/F11を確認することができますFurethermore

void someMethod() 
{ 
    doSomething(); 
    return; 
    StartWorldWarThree(); //no waries, this will never be executed :) 
} 

次のブレークポイントに移動するためのF5、またはブレークポイントがもうない場合は実行を終了します。

1

すべての条件が真であるというカウントを取ると、 3つのifが実行されるようにするには、残りのコードの実行を停止します。 `の最後に声明、およびそのメソッドがvoidであると

+0

コメントする前に最後の文章を読んでください – MrVoid

関連する問題