6

C#のOOPコンセプト「メッセージパッシング」(メソッドの呼び出し/パラメーターの受け渡し/イベントの起動/イベントの処理/ ???)の例は何ですか?なぜメッセージパッシングと呼ばれるのですか?

4

3 に答える 3

8

メソッド呼び出し。

これは、「関数を呼び出す」という命令型の概念と区別し、受信オブジェクトが何をするかを決定するという考えを強化するために、メッセージパッシングと呼ばれます。通話サイトでは、受信者に「メッセージ」を伝えるだけです。

例としては、クラスで抽象的であり、サブクラスで実装されているメソッドがあります。またはインターフェイスメソッドの実装。たとえばGetEnumerator()、タイプの変数を介して呼び出す場合IEnumerable、呼び出しサイトで実際に実行する必要のあるコードがわかりません。

于 2009-07-27T16:10:30.293 に答える
2

パラメータの受け渡しと区別するために、メッセージパッシングと呼ばれます。

メッセージを渡す主な利点は、メッセージを受信するメソッドの署名を変更せずに、メッセージの内容を変更できることです。

もう1つは、複数のメソッドが同じ情報を必要とする場合があるため、同じ場所で定義および変更できることです。

于 2009-07-27T16:16:20.720 に答える
2

メッセージパッシングとメソッド呼び出しが違うと感じる人もいます。この用語は同じ意味で使用されますが、意味は微妙です。

smalltalkでは、メッセージパッシングは実行時に制限され、オブジェクトには、メソッドとして明示的に定義されていないメッセージを処理できるかどうかを判断する方法がありました。Rubyはこのmethod_missingを呼び出します。特にC++のメソッドはコンパイル時にバインドされ、より多くのメッセージを処理する方法を動的に追加する方法はありません。C#4.0には、ダイナミクスを投げ始めたらミックスがあります。

メッセージパッシングの別の学校があります、Erlangはすべてのメッセージ引数が状態で分離される必要があると信じています。つまり、それらは不変またはコピーのいずれかです。

于 2009-07-27T16:18:09.687 に答える