2017-04-13 1 views
-4

나는 다음과 같은 코드가 있습니다 문제는 코드가 실행되지 않습니다 모든

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; 
      } } 

, 그것은 단지 3 코드 중 2를 실행

, 내 말은 newtotalstock 계산, 코드가 종료됩니다.

은 내가 newavai까지 위의 변경하려고하고, 결과는이 newavai을 계산하고 newtotalstock를 전달합니다, 동일합니다. 이유는 모르겠지만 모든 코드가 정확합니다. 제발 도와주십시오

+5

을 필요로하지 않기 때문에, 전혀 자리를 해달라고 아마 그 때문에'수익의의,의 끝에'문 'if' 블록? – Fabjan

+0

디버거는 친구입니다. – Filburt

+0

@Filburt 오, 이런, 여기에 질문을 할 때, 나는 이미 10 번 이상 디버깅을 의미합니다. – Serenade

답변

1

단어 "return"ends function 무효화 방법을 사용하는 경우 특정 지점에서 종료하지 않는 한 실제로 반환 할 필요가 없습니다. "return"이후의 코드는 결코 실행되지 않습니다 (사용법 "yield returns"중에 만 예외가있을 수 있습니다. 그러나 그것은 다른 이야기입니다). 당신은 항상 당신의 코드에서 중단 점을 만들 수 있습니다 Furethermore

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

당신의 코드가 실행되고 있는지 확인 : F10/F11를 만들기 위해 다음 (또는 그냥 읽어 창문의 왼쪽 테두리에 클릭) 코드에서 단계, F5를 눌러 다음 중단 점으로 이동하거나 중단 점이없는 경우 실행을 종료합니다.

1

모든 조건이 참이라는 계산으로 계산하면 반환됩니다. 나머지 코드 실행을 멈추고 3을 실행하려면 return을 제거하십시오. 및

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

로에게 방법의 마지막 선을 배치 또는 그 방법은 무효이며, 그것을

+0

댓글 달기 전에 마지막 문장 읽기 – MrVoid

관련 문제