他们都做同样的事情.一种方式更好吗?显然,如果我编写代码,我会知道我做了什么,但其他人如何阅读呢?
if (!String.IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } return RedirectToAction("Open", "ServiceCall");
要么
if (!String.IsNullOrEmpty(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Open", "ServiceCall"); }
Andrew Rolli.. 30
return String.IsNullOrEmpty(returnUrl) ? RedirectToAction("Open", "ServiceCall") : Redirect(returnUrl);
我更喜欢.
或替代方案:
return String.IsNullOrEmpty(returnUrl) ? RedirectToAction("Open", "ServiceCall") : Redirect(returnUrl);
这比问题中列出的任一选项都要差. (6认同)
Gavin Miller.. 24
我认为最好删除not(否定)并首先得到肯定的断言:
if (String.IsNullOrEmpty(returnUrl)) { return RedirectToAction("Open", "ServiceCall"); } else { return Redirect(returnUrl); }
-要么-
// Andrew Rollings solution return String.IsNullOrEmpty(returnUrl) ? RedirectToAction("Open", "ServiceCall") : Redirect(returnUrl);
krosenvold.. 21
一个风格问题:
if (String.IsNullOrEmpty(returnUrl)) { return RedirectToAction("Open", "ServiceCall"); } return Redirect(returnUrl);
当你取消双重否定时,无论你选择哪种支撑方式,它都会读得更好.读得更好的代码总是最好的;)
return String.IsNullOrEmpty(returnUrl) ? RedirectToAction("Open", "ServiceCall") : Redirect(returnUrl);
我更喜欢.
或替代方案:
return String.IsNullOrEmpty(returnUrl) ? RedirectToAction("Open", "ServiceCall") : Redirect(returnUrl);
我认为最好删除not(否定)并首先得到肯定的断言:
if (String.IsNullOrEmpty(returnUrl)) { return RedirectToAction("Open", "ServiceCall"); } else { return Redirect(returnUrl); }
-要么-
// Andrew Rollings solution return String.IsNullOrEmpty(returnUrl) ? RedirectToAction("Open", "ServiceCall") : Redirect(returnUrl);
一个风格问题:
if (String.IsNullOrEmpty(returnUrl)) { return RedirectToAction("Open", "ServiceCall"); } return Redirect(returnUrl);
当你取消双重否定时,无论你选择哪种支撑方式,它都会读得更好.读得更好的代码总是最好的;)
第二种方式更好,没有混淆你的意思......
我认为这是一个相当小的风格问题.我认为你的两个样本同样可读.
我更喜欢前者,但其他人只喜欢一个函数的一个退出点,可能会建议:
if (!String.IsNullOrEmpty(returnUrl)) { result = Redirect(returnUrl); } else { result = RedirectToAction("Open", "ServiceCall"); } return result;
我喜欢第一个例子,因为这个摘录会更明显地返回.如果两者return
都是缩进的块,那么需要花费更多的心理努力才能分辨出来.