22

次のメソッドは 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;
    }
}
4

1 に答える 1

31

System.Diagnostics.Contractsの属性で[Pure]ラベル付けすることを意味する場合、ドキュメントには次のように記載されています。Pure

純粋なメソッドは、目に見える状態の変更を行いません。

メソッドは目に見える状態の変更を行わないように見えるため (つまり、副作用がないため)、[Pure]属性の資格があります。

于 2010-05-07T05:17:42.543 に答える