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

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

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;
    }
}
22
задан Aza 15 April 2013 в 03:12
поделиться

1 ответ

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

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

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

31
ответ дан 29 November 2019 в 05:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: