7

我有一个具有以下属性的类:

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

我有一个Action<bool> 作为参数的构造函数。

现在我想添加另一个接受类型对象的构造函数Action。我怎样才能转换ActionAction<bool>?在这种情况下,布尔参数应该为真。

4

2 回答 2

13
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
    }
}

现在,您可以根据要调用的 2 个构造函数中的哪一个以 2 种方式实例化此类:

  1. var foo = new Foo(x => { Console.WriteLine("Hello"); });(调用第一个 ctor)
  2. var foo = new Foo(() => { Console.WriteLine("Hello"); });(打电话给第二个演员)
于 2012-10-08T14:02:16.413 回答
6
Action a = () => aboolaction(true);
于 2012-10-08T14:01:00.630 回答