我见过这样的方法:
public void Foo(List<string> list)
{
list.Add("Bar");
}
这是修改方法中的参数的好习惯吗?
这不是更好吗?
public List<string> Foo(List<string> list)
{
// Edit
List<string> newlist = new List<string>(list);
newlist.Add("Bar");
return newlist;
}
感觉第一个例子有意想不到的副作用。