我不喜歡這個功能的外觀。如果沒有「魔術弦」,有沒有辦法讓它看起來不那麼醜陋?這個表達式是否需要優化?
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)」。 –
當人們說「優化」時,他們的意思是讓代碼運行得更快,或者使用更少的內存。有時使代碼本身佔用更少的空間。使其更具可讀性只是叫它更具可讀性。 –
您可以插入空格以使'!='(和)部分排列起來。這可能會使它在視覺上不那麼醜陋,儘管在需要屬性匹配以使方法正確的意義上仍然是「醜陋的」。這可以通過使用「魔術串」的單元測試來保證。 –