ventajas reales de los delegados .Net más de clases de Java Anon?
-
12-09-2019 - |
Pregunta
Sé que muchos de los usos de los delegados .Net puede ser emulado en Java mediante el uso de una combinación de interfaces y clases anónimas, pero ¿Hay alguna situación donde los delegados tienen una ventaja real y no hay equivalente en Java?
Solución
- Mucho sintaxis más concisa en C # con las expresiones lambda y métodos anónimos
- La inferencia de tipos
- Apoyo general a los delegados en la lengua (conversiones de grupo Método etc)
- delegados de multidifusión con soporte de idiomas
- Eventos (sintaxis simple para el patrón de observador basado en delegados)
- Ejecución asíncrona a través del sistema de hilos-pool
- Los árboles de expresiones con soporte de idiomas
Sí, muchos de ellos puede puede hacer en Java, pero es igual de doloroso.
Imagínese consultas LINQ escritura pero sin expresiones lambda, métodos de extensión, etc. Sería horrible. Lo mismo ocurre con muchos otros lugares donde los delegados son la solución natural en C # .NET o - la solución de Java idiomática menudo no utiliza clases internas anónimas porque son tan condenadamente feo
Otros consejos
cierres reales con los métodos anónimos en C #
con las clases anónimas en Java, usted tiene que declarar todas las variables, se utiliza desde el ámbito exterior, como final