我不喜欢这个功能的外观。如果没有“魔术弦”,有没有办法让它看起来不那么丑陋?这个表达式是否需要优化?
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);
}
这很长,但很容易看出它是通过确保部件总和实际等于存储的总数来测试一致性。我的代码中没有看到任何“[magic strings](http://stackoverflow.com/questions/11099876/avoiding-magic-strings-and-numbers)”。 –
当人们说“优化”时,他们的意思是让代码运行得更快,或者使用更少的内存。有时使代码本身占用更少的空间。使其更具可读性只是叫它更具可读性。 –
您可以插入空格以使'!='(和)部分排列起来。这可能会使它在视觉上不那么丑陋,尽管在需要属性匹配以使方法正确的意义上仍然是“丑陋的”。这可以通过使用“魔术串”的单元测试来保证。 –