Comments 4
Проверка RetentionTimes.Count != 1 лишена смысла, так как перед этим проверяют RetentionTimes.Count == 0.
public virtual void Validate()
{
if (RetentionTimes == null
|| RetentionTimes.Count == 0
|| RetentionTimes.Count != 1)
{
throw new ArgumentException(
Resources.InvalidRetentionTimesInPolicyException);
}
}
Тут не избыточная проверка на
RetentionTimes.Count != 1
, а избыточная проверка на RetentionTimes.Count == 0
. Этот код проверяет что коллекция не null и имеет ровно один элемент. Вот пример кода, показывающий эту проверку в действии. Если убрать RetentionTimes.Count != 1
, то условию будут удовлетворять любые не пустые коллекции, а это уже совсем другое условие.Автору этого стоило более явно выразить это условие:
if (RetentionTimes?.Count != 1) {
throw new ArgumentException(Resources.InvalidRetentionTimesInPolicyException);
}
Тут не избыточная проверка на RetentionTimes.Count != 1, а избыточная проверка на RetentionTimes.Count == 0.
Почему? Автор явно хочет, что бы код отрабатывал в 2-ух случаях, когда переменная null или =0.
Если переменная ==0, то она по определению не может быть ==1. И проверка тут скорее на пустую коллекцию.
Спасибо. Подправил.
Всё так. Мы в джаве в аналогичном коде даже квик-фикс предлагаем:
Sign up to leave a comment.
Azure PowerShell: «в основном безвреден»