【发布时间】:2015-09-10 13:19:01
【问题描述】:
如果尚未实例化,我有一个可能为 null 的列表,我希望在调用 GetList() 时能够返回现有列表或创建列表然后返回。这看起来更干净:
private List<object> m_objects;
public List<object> GetList()
{
m_objects = m_objects ?? new List<object>();
return m_objects;
}
但是将列表设置为自身是否会影响性能,或者 C# 是否意识到这没有必要?
替代方案是:
private List<object> m_objects;
public List<object> GetList()
{
if(m_objects != null)
{
return m_objects;
}
m_objects = new List<object>();
return m_objects;
}
显然不是世界末日,但我仍然很好奇。
【问题讨论】:
-
或者简单地说:
private readonly List<object> m_objects = new List<object>(); public List<object> GetList(){return m_objects;} -
与任何性能问题一样,您当然可以简单地对其进行测试。虽然我严重怀疑会有很大的不同。
-
对于初学者,如果我们不打算每次都使用它,我们不会总是希望新的对象。我会称之为延迟初始化
标签: c# performance list