在應用程式中有5個方法,在所有方法中都有更新查詢。方法之間是相互依賴的。如果第一個方法運行成功,第二個方法被呼叫;第二個方法運行成功,第三個方法被呼叫;第三個方法運行成功,第四個方法被呼叫;第四個方法運行成功,第五個方法被呼叫。
以下是我寫的代碼
public void method1()
{
int result = cmd.ExecuteNonQuery()。
if(result > 0)
{
method2()。
}
}
public void method2()
{
int result = cmd.ExecuteNonQuery()。
if(result > 0)
{
method3()。
}
}
public void method3()
{
int result = cmd.ExecuteNonQuery()。
if(result > 0)
{
method4()。
}
}
public void method4()
{
int result = cmd.ExecuteNonQuery()。
if(result > 0)
{
method5()。
}
我想在不使用if陳述句、switch case或三元運算子的情況下寫這段相同的代碼。
uj5u.com熱心網友回復:
我首先會將方法簽名改為回傳result。
然后你可以宣告和陣列methods的Func<int>并將其初始化為Method1, Method2, ...Methodn
然后你只需要一個回圈:
foreach (method in methods) {
if (method() == 0)
break; //或任何其他動作。 }
可以添加代碼來處理出錯的情況。
uj5u.com熱心網友回復:
@Tarik的答案很簡單,而且能完成作業,我就選擇這個答案。
還有其他方法。
不過還有其他方法。 例如,您可以為每個方法創建一個任務,并使用 c# TPL 提供的多個選項之一(例如,續篇)
另一件簡單的事情,就是利用短路條件運算子,像這樣:
return cmd.ExecuteNonQuery1() > 0
&& cmd.ExecuteNonQuery2() > 0
&& cmd.ExecuteNonQuery3() > 0
&& cmd.ExecuteNonQuery4() > 0;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/329420.html
標籤:
上一篇:Python用回圈和if設定值
