根据构造函数中的条件,向基本构造函数传递不同的值

时间:2018-11-28 14:41:12

标签: c# oop constructor

我有一个如下的构造函数

public class Person : Animal
{
    public Person(Settings settings) : base(settings.ActionProperty1)
    {

    }
}

public class Animal
{
    public Animal(Action a)
    {

    }
}

public class Settings
    {
        public bool Flag { get; set; }

        public Action ActionProperty1 { get; set; }

        public Action ActionProperty2 { get; set; }
    }

如何根据某些条件将基本构造函数传递给其他值。即类似以下内容。

public Person(Settings settings) : base(settings.flag ? settings.ActionProperty1 : settings.ActionProperty2)
{

}

上面给了我一个编译错误:CS0173无法确定条件表达式的类型,因为“方法组”和“方法组”之间没有隐式转换

此外,我无法通过在基类中添加属性设置器来解决此问题。我需要在对基的构造函数调用中做到这一点

编辑:答案在此处链接的第二个重复项中提供。 Type of conditional expression cannot be determined (Func)我必须将可选参数之一转换为动作。谢谢

0 个答案:

没有答案