IList属性自动获取设置

时间:2018-11-28 05:38:21

标签: c#

当前,如果要为类声明一个属性,请编写以下代码:

public string Target { get; set; }

现在使用IList(泛型),我做这样的事情:

IList<Result> _Results;
public IList<Result> Results
{
    get
    {
        if (_Results == null)
            _Results = new List<Result>();
        return _Results;
    }
    set
    {
        _Results = value;
    }
}

get部分中,我检查列表是否为空,然后我将创建一个新列表... 我该如何避免这一部分,并拥有越来越少的代码?

2 个答案:

答案 0 :(得分:2)

如果使用C#6,则可以使用null-coalesce运算符??

IList<Result> _Results;
public IList<Result> Results
{
    get => _Results ?? (_Results = new List<Result>());

    set
    {
        _Results = value;
    }
} 

答案 1 :(得分:1)

在C#6或更高版本中,您可以执行以下操作:

public IList<Result> Results { get; set; } = new List<Result>();