2009-02-27 18 views
25

veo esta línea en muchos ejemplos en línea de la utilización de la acción delegado:delegado acción con parámetros cero

public event Action MyEvent; 

Pero cuando lo intento en mi propio código, me sale este error

Uso el tipo genérico de 'System.Action' requiere '1' tipo argumentos

la documentación describe una forma sin duda de acción sin ningún tipo de parámetro. ¿Qué me estoy perdiendo?

+4

No es una respuesta a la pregunta, pero no debe usar una Acción para un evento. Utilice EventHandler o EventHandler como delegado para eventos. –

+2

@GregBeech, gracias por la sugerencia, pero ¿cuál es el motivo para no utilizar Acción aquí? –

+0

@ I.J.Kennedy Esta respuesta es bastante impresionante http://stackoverflow.com/a/803320/1608072 – caiosm1005

Respuesta

22

Asegúrese de que su aplicación hace referencia a System.Core.

Editar - también asegúrese de que está apuntando .NET 3.5 como el System.Core.dll es parte de esa versión.

+0

Y es .NET 3.5 ... –

+0

¡Gracias! No tenía una referencia System.Core. Incluso sabiendo la respuesta, todavía no pude encontrarla en los documentos. –

36

Expandiendo la respuesta de Andrews.

Es completamente legal utilizar Action en un escenario que no sea 3.5. Simplemente defínalo tú mismo.

public delegate void Action(); 
+0

A menos que lo esté pasando a la biblioteca de otra persona, eso es mediante la Acción de System.Core ... –

+3

@Simon, en ese caso ya debe estar usando 3.5 (directa o indirectamente) para que no sea un problema. – JaredPar

Cuestiones relacionadas