1

いわゆる流れるようなインターフェイスのセットがあるので、次のような構文を使用できます。

a.With("abc").Do("これ").Then("それ);

各メソッドは、対応するインターフェイスにキャストされたオブジェクトを返します。設計時には、Intellisense を使用して API メソッド間を簡単に移動できます。ただし、引数の1つをダイナミックにキャストすると、それができなくなります。

a.With((dynamic)"abc").Do("this").Then("that);

設計時に Intellisense を失うだけでなく、このキャストはランタイムの実行に影響を与えます。動的な型のオブジェクトを返す With の後のすべての後続の呼び出しは、実行ロジックを壊す可能性があります。

私が理解できないのは、動的引数が静的型のみを使用するコントラクトに影響を与える理由です。メソッド With が ISomeInterface のインスタンスを返すように設計されていて、実装が SomeClass (ISomeInterface を実装する) を返す場合、無関係な場所で使用される動的オブジェクトが後続のすべての呼び出しチェーンに感染する必要があるのはなぜですか? それを防ぐ方法はありますか?

4

1 に答える 1

0

Erik Lippert によるこの投稿がすべての答えだと思います。

http://blogs.msdn.com/b/ericlippert/archive/2012/10/22/a-method-group-of-one.aspx

于 2012-11-14T22:10:29.730 に答える