我有一些遺留的C#代碼與下面的一段:的AddRange讓步公共訪問列表
private List<MyClass> mList = new List<MyClass>();
public List<MyClass> getList()
{
List<MyClass> list = new List<MyClass>();
list.AddRange(mList);
return list;
}
不知道是什麼的AddRange
這裏的目的是什麼?我可以把它改寫爲:
public List<MyClass> getList()
{
return mList;
}
是的。從顯示的代碼中,應該足夠了。 –
不完全相同,因爲'getList'使用相同的對象創建一個新列表,而'return mList'返回甚至相同的列表。所以如果你要調用getList()。Clear()',原始列表也會被清除。 –
此屬性具有醜陋的副作用,因爲它意味着您可以通過修改返回的列表來更改擁有類的狀態。返回一個「IEnumerable」或者將其作爲一種方法是合適的。 – Silvermind