2010-03-30 9 views
8

Soy un programador de VB trabajando en C#. Aprendí a crear y generar eventos en vb y estoy descubriendo que no se hace de la misma manera en C#. ¿Alguien ha encontrado un artículo que me ayudará a entender cómo hacer eventos en C# y quizás explicar por qué es diferente en VB?¿Cuál es la diferencia entre los eventos en VB y C#?

Gracias

+0

Esta pregunta explica la diferencia entre 'handle' en VB.Net y la sintaxis del evento C# http://stackoverflow.com/questions/794332/migrating-handles-from-vb-net-to-c – MarkJ

+0

Gracias MarkJ realmente aprecio su ayuda –

Respuesta

0

La diferencia es sobre todo sintáctica.

Ver this referencia práctica sobre las diferencias.

El controlador de eventos en VB.NET se declara con la palabra clave Handling adjunta a la firma del controlador de eventos. En C# necesita usar registrarlo con +=.

En VB.NET invoca el evento con RaiseEvent, en C# llama al delegado directamente.

+0

Gracias por su ayuda Oded –

0

lectura de:

http://msdn.microsoft.com/en-us/library/aa645739(VS.71).aspx

Un evento en C# es una manera para que una clase de proporcionar notificaciones a los clientes de clase que cuando alguna cosa interesante pasa a un objeto. El uso más familiar de los eventos es en las interfaces gráficas de usuario ; normalmente, las clases que representan controles en la interfaz tienen eventos que son notificados cuando el usuario hace algo al control (por ejemplo, haga clic en el botón ).

Los eventos, sin embargo, no necesitan utilizarse solo para las interfaces gráficas. Los eventos proporcionan una forma generalmente útil para los objetos para indicar cambios de estado que pueden ser útiles para los clientes de ese objeto . Los eventos son un bloque de construcción importante para crear clases que se pueden reutilizar en un gran número de diferentes programas.

Consulte el artículo para el resto.

0

Se puede encontrar una buena referencia general rápida para algunas diferencias clave en la sintaxis here. Busque "eventos" para llegar a esa sección.

Las diferencias clave es que VB requiere que utilice algunas palabras clave en lugar de sumas/restas para teleconvulsar eventos, pero le da una palabra clave maneja palabra clave automáticamente a un evento. Y al pasar un delegado, debe usar una palabra clave AddressOf inútil. (Perdón por el editorial, pero creo que esa palabra clave causa más confusión de la que ahorra)

+0

Gracias por su comentario Patrick –

+0

@M no hay problema. era que . . . vale la pena un voto popular? :) –

1

La principal diferencia es la sintaxis que se utiliza. Debajo, usan exactamente los mismos mecanismos dentro del CLR.

Sin embargo, VB.NET proporciona una sintaxis especial a través de WithEvents y Handles, que le permite hacer:

Dim WithEvents button1 As Button 

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyButton.Click 
    ' Handle button click 
End Sub 

C# no proporciona una equivelent - todos los eventos deben ser suscritas de forma explícita a través de event +=, que es más como AddHandler declaración de VB.NET.

+0

Gracias por su ayuda Reed –

Cuestiones relacionadas