【发布时间】:2013-06-05 13:36:27
【问题描述】:
我不喜欢这个函数的外观。如果没有“魔术字符串”,有没有办法让它看起来不那么难看。
private static bool Inconsistent(AdStats adStat) {
return
adStat.Daily.Impressions != adStat.Hourly.Sum(h => h.Value.Impressions) ||
adStat.Daily.Clicks != adStat.Hourly.Sum(h => h.Value.Clicks) ||
adStat.Daily.Spent != adStat.Hourly.Sum(h => h.Value.Spent) ||
adStat.Daily.SocialImpressions != adStat.Hourly.Sum(h => h.Value.SocialImpressions) ||
adStat.Daily.SocialClicks != adStat.Hourly.Sum(h => h.Value.SocialClicks) ||
adStat.Daily.SocialSpent != adStat.Hourly.Sum(h => h.Value.SocialSpent) ||
adStat.Daily.UniqueImpressions != adStat.Hourly.Sum(h => h.Value.UniqueImpressions) ||
adStat.Daily.UniqueClicks != adStat.Hourly.Sum(h => h.Value.UniqueClicks) ||
adStat.Daily.SocialUniqueImpressions != adStat.Hourly.Sum(h => h.Value.SocialUniqueImpressions) ||
adStat.Daily.SocialUniqueClicks != adStat.Hourly.Sum(h => h.Value.SocialUniqueClicks);
}
【问题讨论】:
-
当人们说“优化”时,他们的意思是让代码运行得更快,或者让它使用更少的内存。有时使代码本身占用更少的空间。使其更具可读性只是称为使其更具可读性。
-
您可以插入空格以使
!=(及以上)部分对齐。这可能会使它在视觉上不那么难看,尽管在需要属性匹配以使方法正确的意义上仍然是“难看的”。这可以通过使用“魔术字符串”的单元测试来确保。 -
@GrantWinney,我的意思是,我可以使用反射并传递要更新的属性列表。 EdPlunkett,我真正想要的基本上是 DRY。
标签: c# .net optimization