オブジェクトの不変メソッドが特定の例外をスローするようにします。それは理にかなっていますか?C#で可能ですか?
たとえば、不変メソッドを持つクラス A と例外クラス E を含む次のコードがあります。今のところ、クラス E は A に参加していません...
class A {
int x = 0, y = 1;
[ContractInvariantMethod]
private void YisGreaterThanX() {
Contract.Invariant(x < y);
}
}
class E : Exception {
}
そして、私が必要とするのは次のとおりです。Contract.Requires と同様に、Contract.Invariant (または、Exception 派生クラスを受け入れる属性コンストラクター) があると便利です。
class A {
int x = 0, y = 1;
[ContractInvariantMethod]
private void YisGreaterThanX() {
Contract.Invariant<E>(x < y);
}
}
class E : Exception {
}
それは善意ですか?私のロジックが間違っている可能性がありますか?