7 votes

C# Convertir une action en une action<bool>.

J'ai une classe qui a la propriété suivante :

public Action<bool> Action { get; private set; }

Et j'ai un constructeur qui prend Action<bool> comme argument.

Je souhaite maintenant ajouter un autre constructeur qui accepte un objet de type Action . Comment puis-je convertir Action à Action<bool> ? Le paramètre bool doit être vrai dans ce cas.

13voto

Darin Dimitrov Points 528142
public class Foo
{
    public Foo(Action<bool> action)
    {
        // Some existing constructor
    }

    public Foo(Action action): this(x => action())
    {
        // Your custom constructor taking an Action and 
        // calling the existing constructor
    }
}

Vous pouvez maintenant instancier cette classe de deux façons, en fonction de l'un des deux constructeurs que vous souhaitez invoquer :

  1. var foo = new Foo(x => { Console.WriteLine("Hello"); }); (appelle le premier ctor)
  2. var foo = new Foo(() => { Console.WriteLine("Hello"); }); (appelle le second ctor)

6voto

Marco Mp Points 303
Action a = () => aboolaction(true);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X