有什么方法可以优化这个C#代码吗?

时间:2011-07-27 23:56:43

标签: c#

我有我的代码,我想优化它。对我来说,它看起来已经优化了。任何人都可以建议我如何让它更优化一点?

if (target == "power")
{
    return new JsonResult { Data = new { RC = new Data.AdminPower(datastoreValue).Refresh() } };
} 
if (target == "notes")
{
    return new JsonResult { Data = new { RC = new Data.AdminNotes(datastoreValue).Refresh() } };
}
if (target == "book")
{
    return new JsonResult { Data = new { RC = new Data.AdminBook(datastoreValue).Refresh() } };
}
return null;

5 个答案:

答案 0 :(得分:2)

如果您知道将使用"book"值更频繁地调用您的方法,那么您应该先放置它。基本上按频率顺序排序。

答案 1 :(得分:2)

switch语句非常适合这些情况:

switch(target)
{
case "power":
  return new JsonResult { Data = new { RC = new Data.AdminPower(datastoreValue).Refresh() } };
case "notes":
  return new JsonResult { Data = new { RC = new Data.AdminNotes(datastoreValue).Refresh() } };
case "book":
  return new JsonResult { Data = new { RC = new Data.AdminBook(datastoreValue).Refresh() } };
default:
  return null;
}

不要真的需要休息,因为它每次都会回来,但它的良好做法......

答案 2 :(得分:0)

我唯一要做的就是将if更改为if-elseif链。

答案 3 :(得分:0)

我不知道您对优化的想法是什么, 作为一个速度问题,只需在第二和第三之前放一些'其他'即可 但如果你的意思是更少的代码行,那么可能会有这样的东西可以帮助你:

return 
((target == "power") ? new JsonResult { Data = new { RC = new Data.AdminPower(datastoreValue).Refresh() } } :
((target == "notes") ? new JsonResult { Data = new { RC = new Data.AdminNotes(datastoreValue).Refresh() } } : 
((target == "book") ? new JsonResult { Data = new { RC = new Data.AdminBook(datastoreValue).Refresh() } } : null))))

答案 4 :(得分:0)

正如其他人提到的那样,你应该把它们按照最有可能发生的顺序排列,以尽量减少不正确的比较总数。

也许可以将“power”“notes”和“book”更改为enum或int表示,这可能比字符串比较稍快。

但是,你可以做的很多事情都不会导致任何重大的优化。