无法使用集合初始值设定项初始化类型

时间:2015-03-09 22:08:11

标签: c#

我有一个类选项。

public class Option
{                
    public bool Aggregation { get; set; }
    public PropertyOptions Property { get; set; }
    public bool DoEvent { get; set; }
}

PropertyOptions就是这样..

public enum PropertyOptions
{        
    [EnumMember]
    On = 0,     
    [EnumMember]
    Off = 1,
    [EnumMember]        
    Auto = 2,
}

现在我有一个返回类Option

的对象的方法
Option setOptions()
{
        return new Option()
        {
            Aggregation = true,                
            Property = new PropertyOptions()
            {
                PropertyOptions.Auto,
            },                                       
            DoEvent = true,
       };
}

这里我收到的错误是"无法使用集合初始化程序初始化类型PropertyOptions,因为它没有实现System.Collection.IEnumerable"

我不确定如何设置数据成员' Property'。 如果有人能引起我注意可能出现的错误以及如何纠正错误会有所帮助?

2 个答案:

答案 0 :(得分:6)

您需要使用常规作业。

new Option()
{
    Aggregation = true,                
    Property = PropertyOptions.Auto,                                   
    DoEvent = true
}

您尝试使用的语法是集合初始化。例如:

var list = new List<string>
{
    "apple",
    "banana"
};

您的Property财产不是收藏品。

答案 1 :(得分:3)

New Operator用于从类中实例化对象。您正在使用Enum,它不是Class。

您应该只能使用赋值运算符。

new Option()
{
    Aggregation = true,                
    Property = PropertyOptions.Auto,                                   
    DoEvent = true
};