初始化公共类中的列表

时间:2017-03-29 00:52:01

标签: c#

我有这个:

public class GetList {

    public List< KeyValuePair< string, string > > errors {
        get; set;
    }
}

我想知道如何添加构造函数来获取类的新实例以及我可以添加值的新列表

1 个答案:

答案 0 :(得分:1)

构造函数的定义如下:

class ClassNameGoesHere {

    public ClassNameGoesHere() {
        // this is the constructor
    }
}

您可以在构造函数中初始化errors属性:

class ClassNameGoesHere {

    public ClassNameGoesHere() {

        this.errors = new List< KeyValuePair< string, string > >();
    }
}

但是,您应该通过创建集合属性readonly来符合C#惯用编程(这并不意味着集合是不可变的,它只是阻止外部代码完全替换集合)以及使用已建立的命名和大小写约定。

我还会使用Tuple<String,String>代替KeyValuePair<K,V>或定义我自己的元素类型。

您可以使用属性初始化程序设置只读属性,这相当于将其放在构造函数中,但使代码更紧凑,因此可以完全删除显式构造函数:

我就是这样做的:

class ClassNameGoesHere {

    public List<Tuple<String,String>> Errors { get; } = new List<Tuple<String,String>>();
}