Если ToggleVisibility(IEnumerable<Shape>)
является закрытым методом (таким образом, SomeMethod()
должен находиться в той же библиотеке), то я определенно включил бы проверку только один раз в сборку выпуска.Будет ли проверка в том или ином методе, зависит от того, что имеет смысл для происходящего.Если ожидается, что коллекция никогда не будет пустой при правильном выполнении, возможно, проверка не требуется.Если ToggleVisibility(IEnumerable<Shape>)
вызывается из десяти разных мест, и в любом из них может быть пустая коллекция, то я бы определенно освободил вызывающего пользователя от бремени выполнения проверки каждый раз и просто вставил бы его в сам метод.
Если ToggleVisibility(IEnumerable<Shape>)
является частью общедоступного API, то он определенно должен делать все, что необходимо для проверки параметров, поскольку пользователи API, скорее всего, будут делать что-либо, и все параметры должны быть проверены всегда.Если в документации по методу говорится, что пустые коллекции будут игнорироваться, то SomeMethod()
, очевидно, не нужно беспокоиться об этом.В противном случае SomeMethod()
необходимо сделать все возможное, чтобы убедиться, что передаваемая коллекция действительна, даже если это означает, что выполняются избыточные проверки.