English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

soy un viejo programador de C++, que recientemente aprendí la filosofía de la Programación Orientada a Objetos y comecé a usar c# y Java. pero en algunos lugares he visto (sobre todo en documentación de Microsoft) que hay algo que llaman "delegado". Alguén sabria explicarme qué es eso?

2007-02-15 03:39:43 · 2 respuestas · pregunta de ftugues 6 en Ordenadores e Internet Programación y Diseño

2 respuestas

Haber si esto te orienta.

Soy programador de Java, y la delegación de métodos es parte de la herencia.

Imagina que programas el metodo obtener Area, que acepta como parametro digamos el objeto cualquier_cosa, y de el queremos saber el area.

//Este seria tu metodo para sacar area de cualquier cosa
private double getArea(Object cualquier_cosa){
double rpta = 0;
//En Java se puede hacer:
if(cualquier_cosa instanceof Rectangulo){
rpta = Rectangulo.getArea((Rectangulo) cualquier_cosa);
}
else if(cualquier_cosa instanceof Triangulo){
rpta = Triangulo.getArea((Triangulo) cualquier_cosa);
}

//etc
return rpta;
}

En conclusion tu metodo no extrae directamente el area, sino evalua al objeto y en base a una programacion q discierne que es, llama a la clase correcta y devuelve el area (delega la accion y solo lee el resultado).

2007-02-15 10:06:02 · answer #1 · answered by FRSS Soft 4 · 1 0

Checa aquí:
http://msdn2.microsoft.com/es-es/library/system.delegate(VS.80).aspx

Te pongo un fragmento:
La clase Delegate es la clase base para los tipos de delegado. No obstante, el sistema y los compiladores son los únicos que pueden derivar explícitamente a partir de la clase Delegate o de la clase MulticastDelegate. Tampoco está permitido derivar un tipo nuevo a partir de un tipo de delegado. La clase Delegate no se considera un tipo de delegado; es una clase que se utiliza para derivar tipos de delegado.

La mayoría de los lenguajes implementan una palabra clave delegate y los compiladores de dichos lenguajes pueden derivar a partir de la clase MulticastDelegate; por lo tanto, los usuarios deben emplear la palabra clave delegate que proporciona el lenguaje.

La declaración de un tipo de delegado establece un contrato que especifica la firma de uno o varios métodos. Un delegado es una instancia de un tipo de delegado que contiene referencias a:

*

Un método de instancia de un tipo y un objeto de destino asignable a ese tipo.
*

Un método de instancia de un tipo, con el parámetro this oculto expuesto en la lista de parámetros formales. Se dice que el delegado es un delegado de instancia abierto.
*

Un método estático.
*

Un método estático y un objeto de destino asignable al primer parámetro del método. Se dice que el delegado se cierra en su primer argumento.

Checalo bien, estoy seguro q es lo q buscas!!

2007-02-15 11:56:59 · answer #2 · answered by akyanything 4 · 1 0

fedest.com, questions and answers