2011-07-01 8 views
5

Siendo nuevo en .NET y Silverlight, he notado que muchos de los tutoriales para Silverlight (Blog de Tim Heuers, TV Silverlight, etc.) están en C#. Sé que la diferencia general entre VB y C# suele ser preferencia.Silverlight: ¿existe una diferencia de rendimiento entre los gestores de eventos de C# y VB.net?

Sin embargo, una de las principales diferencias que noté fue la forma en que C# y VB.NET manejan los eventos. ¿Es solo una diferencia sintáctica, o es uno u otro optimizado para manejar mejor los eventos? Por ejemplo, ambos se compilan en el mismo Idioma Intermedio, pero ¿el código que se genera es idéntico? Viendo que Silverlight depende mucho de esto, pensé que podría valer la pena considerarlo.

Teniendo en cuenta la experiencia en este foro, me preguntaba si alguien ha investigado esto, o pruebas de rendimiento.

+0

¿Está preguntando si existe alguna diferencia en la forma en que se invocan los controladores? – dbasnett

Respuesta

2

El código que se genera puede no ser idéntico a las instrucciones, pero el efecto general es el mismo. No debería ver una diferencia de rendimiento en esa área.

VB.NET tiene dos sintaxis para eventos - AddHandler, lo que es lo mismo que C# 's +=, y Handles, que es sólo el azúcar sintáctica para AddHandler en un constructor.

+0

Gracias, esto es realmente lo que me interesaba. No estaba seguro de qué tan idéntico era el resultado IL, solo que eran compatibles. – ginman

+0

La palabra clave Handles en realidad crea código para un setter de propiedades que agrega el controlador de eventos al objeto/lo elimina del objeto anterior. – rossisdead

2

Ambos se compilan en IL (o en este caso, código de bytes Silverlight) y deben realizar exactamente lo mismo. Cualquier diferencia debe ser solo sintáctica.

+0

Tenga en cuenta que hay funciones de idioma disponibles en algunos idiomas que los otros idiomas no tienen y, por lo tanto, no tendrán IL idéntica. Como Foreach de C# y Select Case de VB.Net (sí, es principalmente un cambio, pero permite expresiones para cada caso en lugar de constantes) –

+0

@Corey ¿Qué, en tu opinión, es especial sobre el 'foreach' de C#? –

+0

Lo retiro, después de investigarlo, resulta que VB también lo tiene. Creo que en un momento C# hizo y VB no ... –

Cuestiones relacionadas