我有以下代码:
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个中的2个代码,我的意思是,当计算 newtotalstock 时,代码将结束。
我尝试将 newavai 更改为高于上方,结果相同,它将计算 newavai 并传递 newtotalstock 。我不知道为什么,所有代码都是正确的。请帮忙
答案 0 :(得分:1)
单词“return”结束函数,如果你使用的是void类型方法,你真的不需要使用return,除非你想在某个时候退出它。 “return”之后的代码永远不会被执行(只有异常可能在使用期间“yield return”,但这是另一个故事)。
void someMethod()
{
doSomething();
return;
StartWorldWarThree(); //no waries, this will never be executed :)
}
Furethermore你总是可以在你的代码中创建一个断点(单击窗口的左边框,或者只是阅读它),然后检查代码的执行方式:) F10 / F11代码中的步骤,如果没有更多的断点,F5转到下一个断点或结束执行。
答案 1 :(得分:1)
记住所有条件都是真实的回报;将停止执行其余的代码,如果你想要3执行,删除返回;并将其作为方法的最后一行
void Method() {
if() {}
if() {}
if() {}
return;
}
或者根本不放置它,因为该方法无效且不需要它