说我有这个:
private list<myClass> myCollection;
是否有编程习惯用法将这个非常常见的语句组合缩短为单个语句? :
if (myCollection == null)
myCollection = new list<myCollection>();
myCollection.Add(someInstanceOfMyClass);
这个成语可以被描述为“必要时创建,然后添加到它”
TIA。
答案 0 :(得分:4)
为什么不简单地在声明中创建?:
private readonly List<myClass> myCollection = new List<myCollection>();
实例化单个列表不是消耗时间或内存的事情。 (如果你有成千上万的这些并想要懒惰的实例化,可能会有所不同)。
答案 1 :(得分:1)
你可以做出类似这样的事情:
private List<myClass> myCollection { get {
if (_myCollection == null) _myCollection = new List<myCollection>();
return _myCollection;
}}
private List<myClass> _myCollection;
然后:
myCollection.Add(someInstance);
将调用getter,它会检查null。
创建列表可能更好