22

以下方法纯吗?我会这么说,因为它在当前类中无论如何都不会改变,因此,我们现在可以在类中“看到”的所有内容,在运行此方法之前仍然会完全相同。我对么?

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;
    }
}
4

1 回答 1

31

如果[Pure]您的意思是标有System.Diagnostics.ContractsPure的属性,则文档说:

纯方法不会进行任何可见的状态更改。

由于您的方法似乎没有进行任何可见的状态更改(即没有副作用),因此它符合该[Pure]属性的条件。

于 2010-05-07T05:17:42.543 回答