我有一個類似於下面顯示的代碼,我想知道是否有一個更有效的方法來編寫此方法在mvc。什麼是在C#中嵌套if語句的更有效方法?
public ActionResult LogViewerFiles([DataSourceRequest] DataSourceRequest request, string testValue, string testValue2)
{
if (string.IsNullOrWhiteSpace(testValue2) && string.IsNullOrWhiteSpace(testValue))
{
return View();
}
if (!string.IsNullOrWhiteSpace(testValue))
{
var fileName = testValue;
var logEntries = LogEntry.ReadLogEntries(fileName);
if (logEntries == null)
{
return JavaScript("Callback()");
}
return Json(logEntries.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
if (testValue2!= null)
{
var resultPath = testValue2;
var logEntriesArch = LogEntry.ReadLogEntries(resultPath);
return Json(logEntriesArch.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
return null;
}
基本上我試圖實現的是執行不同的if語句,這取決於我的參數的值。在這種情況下,只有一個參數會有我需要執行代碼的信息,而另一個參數將始終爲空。這種方法是這樣編寫的,因此所有收集的信息都可以顯示在劍道剃刀網格中。
定義「高效」。 – Albireo
那麼你不需要'fileName'或'resultPath'變量。只要將'testValue'和'testValue2'傳遞給'LogEntry.ReadLogEntries'。 – juharr
我發現你的代碼有很多問題需要重構。如果它編譯並正在工作,我建議你在http://codereview.stackexchange.com/上發佈它。 –