Ton*_*Nam 1 c# pass-by-reference pass-by-value
我有一个类,构造函数需要一个类和其他东西,如:
public class SomeClass<T>
{
//global private variables for class
List<T> originalList = new List<T>;
List<T> tempList = new List<T>;
public SomClass(List<T> listParam, string name, ..etc)
{
originalList = listParam;
tempList = listParam;
originalList.removeAt(0); // this also removes an item from tempList.
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这是因为originalList和tempList具有相同的引用.我怎么能让他们有不同的参考.我使用tempList来过滤结果,每当我想刷新时我都使用originalList
你可以复制一份listParam,而不只是分配它的参考:
tempList = listParam.ToList();
Run Code Online (Sandbox Code Playgroud)
请注意,这并没有在列表中创建的每个对象的副本,而只是一个引用这些对象的副本.
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |