我有我的代码,我想优化它。对我来说,它看起来已经优化了。任何人都可以建议我如何让它更优化一点?
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;
答案 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表示,这可能比字符串比较稍快。
但是,你可以做的很多事情都不会导致任何重大的优化。