Puede utilizar cualquiera de lambda o sintaxis delegado anónimo - sólo tiene que especificar el tipo del argumento, y marcarla como fuera:
public delegate bool CutoffDateDelegate(out DateTime cutoffDate);
// using lambda syntax:
CutoffDateDelegate d1 =
(out DateTime dt) => { dt = DateTime.Now; return true; };
// using anonymous delegate syntax:
CutoffDateDelegate d2 =
delegate(out DateTime dt) { dt = DateTime.Now; return true; }
Mientras que declara explícitamente argumentos como se espera de entrada/salida ref , tener que declarar tipos de argumentos en la expresión lambda es menos común ya que el compilador normalmente puede inferirlos. En este caso, sin embargo, el compilador actualmente no infiere los tipos para argumentos out o ref en expresiones lambda/anon. No estoy seguro de si este comportamiento es un error/supervisión o si hay un motivo de lenguaje por el que debe ser así, pero hay una solución bastante fácil.
EDIT: Hice un registro rápido β2 VS2010, y todavía parece que tiene que definir los tipos de argumentos - que no se infieren para C# 4.
consciente de que es un poco viejo, pero yo no creo que sea un duplicado La pregunta vinculada es acerca de usar el parámetro out de la función parent (?) Dentro de la función anónima, mientras que esta se trata de declarar una función anónima que tiene su propio parámetro out. – Salvador