Saltar al contenido

void Func sin argumentos

Solución:

Tu redacción es confusa. Quizás te refieres a “una función sin un tipo de retorno y sin parámetros “. Simplemente existe System.Action.

Action action = () => Console.WriteLine("hello world");
action();

De tu comentario:

Pero necesito completar un <T> escriba una acción y no hay posibilidad de anularla (editaré mi pregunta, cometí un error).

Esto indica un malentendido. El delegado de T en la acción es un aporte. El vacío es el producción. Un delegado de Acción es inherentemente un delegado que regresa sin efecto. La T es el tipo de aporte puede actuar sobre los parámetros que luego proporcionaría con argumentos.

En cualquier caso, como muestran esta respuesta y otras, puede tener un delegado de acción sin ningún T, un delegado que no toma entradas.

Sí, hay diferentes sobrecargas de Action tomando un nmero diferente de parmetros de entrada y teniendo un void tipo de retorno.

Action                public delegate void Action()
Action<T>             public delegate void Action<T>(T obj)
Action<T1,T2>         public delegate void Action<T1,T2>(T1 arg1, T2 arg2)
Action<T1,T2,T3>      public delegate void Action<T1,T2,T3>(T1 arg1, T2 arg2, T3 arg3)
...

La primera línea es lo que busca.

Las versiones más nuevas de Framework han agregado sobrecargas con aún más argumentos. Número máximo de argumentos:

  • .NET Framework 2.0: 1
  • .NET Framework 3.5: 4
  • .NET Framework 4.0: dieciséis
  • Silverlight: dieciséis

Las acciones siempre tienen un void tipo de retorno. A void El tipo de retorno no necesita ni puede especificarse como parámetro de tipo genérico. Por el contrario, el Func los delegados definen tipos de retorno “reales” y siempre tienen al menos un parámetro de tipo genérico para el tipo de retorno. Consulte aquí

Func<TResult>           public delegate TResult Func<TResult>()
Func<T,TResult>         public delegate TResult Func<T,TResult>(T arg)
Func<T1,T2,TResult>     public delegate TResult Func<T1,T2,TResult>(T1 arg1, T2 arg2)
...

.NET Framework 4.0 ha agregado in y out modificadores de los parámetros de tipo genérico para contravarianza y covarianza. Ver: Covarianza y contravarianza en genéricos. Ejemplos:

public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2)

public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2)

Lo que estás buscando es una acción. No toma parámetros y no devuelve ningún valor.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *