初始化属性的良好做法?

Rub*_*ans 3 c#

我有一个类属性,它是一个字符串列表,List.有时这个属性为null或者如果已经设置但列表为空则count为0.但是我的代码中的其他地方我需要检查此属性是否已设置,所以当前我的代码检查它是否为null并且count是0乱.

if(objectA.folders is null)
{
    if(objectA.folders.count == 0)
    {
      // do something
    }
}
Run Code Online (Sandbox Code Playgroud)

有关如何处理此事的任何建议?也许我应该总是初始化属性,以便它永远不会为空?

Jus*_*ner 5

当我将List作为属性时,我通常会看到如下所示的内容(这不是一个线程安全的代码段):

public class SomeObject
{
    private List<string> _myList = null;

    public List<string> MyList
    {
        get
        {
            if(_myList == null)
                _myList = new List<string>();
            return _myList;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

您的代码将永远不必检查null,因为如果使用属性将被初始化.然后,您只需要检查计数.