Подтвердить что ты не робот

Вопрос о [Чистых] методах

Является ли следующий метод Pure? Я бы так сказал, так как он никоим образом не изменился в текущем классе, поэтому все, что мы можем теперь "видеть" в классе, до запуска этого метода по-прежнему будет точно таким же. Правильно ли я?

class Set {
    ...
    public ISet<T> UnionWith(ISet<T> set) {
       ISet<T> unionSet = ...

        foreach (Element element in this) {
            unionSet.Add(element);
        }

        foreach (Element element in set) {
           unionSet.Add(element);
        }

        return unionSet;
    }
}
4b9b3361

Ответ 1

Если по [Pure] вы имеете в виду обозначение Pure атрибут System.Diagnostics.Contracts, в документации говорится:

Чистые методы не делают видимыми изменения состояния.

Так как ваш метод, кажется, не производит каких-либо видимых изменений состояния (то есть никаких побочных эффектов), он будет соответствовать атрибуту [Pure].