2009-07-27 13 views
5

¿Cuál es el ejemplo del concepto OOP 'Pasar mensaje' en C# (métodos de llamada/Pasando parámetros/Eventos de disparar/Gestionar eventos/???) y ¿por qué se llama mensaje que pasa?OOP - Mensaje que pasa en C#

+0

¿Huh? ¿Es una verdadera pregunta? porque tú mismo respondiste Básicamente porque es la forma en que los objetos se comunican; por lo que se llama "transmisión de mensajes". –

+0

Sí lo es. Descubrí el concepto. Y estoy aquí para verificarlo. –

Respuesta

5

Llamadas de método.

Se denomina mensaje que pasa para distinguirlo de la noción imperativa de "llamar a una función" y para reforzar la idea de que el objeto receptor decide qué hacer. En el sitio de llamadas, simplemente le dice al receptor el "mensaje".

2

Se denomina mensaje que pasa para distinguirlo de pasar los parámetros.

Una ventaja importante de pasar un mensaje es que puede cambiar el contenido del mensaje sin cambiar la firma del método que recibe el mensaje.

Otra es que varios métodos pueden necesitar la misma información, por lo tanto, pueden definirse y modificarse en el mismo lugar.

+0

Agradezco su respuesta. Pero la respuesta de Sii es más clara. –

2

Algunos opinan que las llamadas al método y al paso de mensajes son diferentes. Usamos el término indistintamente, pero el significado es sutil.

En smalltalk, el paso de mensajes se ejecutó en tiempo de ejecución, y el objeto tenía una forma de determinar si podía manejar un mensaje que no estaba explícitamente definido como un método. Ruby llama a este method_missing. Los métodos en C++, en particular, están vinculados en tiempo de compilación, sin posibilidad de agregar dinámicamente formas de manejar más mensajes. C# 4.0 tiene una mezcla, una vez que empiezas a lanzar dinámicas.

Hay otra escuela de mensaje que pasa, Erlang cree que todos los argumentos del mensaje deben estar desacoplados en el estado. Es decir, son inmutables o copias.

+0

He escuchado bastante esta última definición: los mensajes son llamadas de método desacopladas que pueden ser de subprocesos múltiples o procesadas fuera de la máquina. En idiomas como C++ y Java, esta funcionalidad no existe, por lo que los términos tienden a ser sinónimos. –

Cuestiones relacionadas