【发布时间】:2015-01-14 11:38:24
【问题描述】:
我正在将代码从 Java 重写为 C#。 我对 C# 中的克隆函数有疑问。
代码在 Java:
public Tour(ArrayList tour)
{
this.tour = (ArrayList) tour.clone();
}
我的代码在 C#:
public Tour(List<City> tour)
{
//What I should do here?
}
我在 C# 中尝试了一些克隆技术,但没有结果。
编辑:
此解决方案完美运行:
this.tour = new List<City>();
tour.ForEach((item) =>
{
this.tour.Add(new City(item));
});
您好!
【问题讨论】:
-
“我在 C# 中尝试了一些克隆技术...” - 您到底尝试了什么,出了什么问题?
-
这里的玩笑是 C# 还包含 ArrayList,其中还包含 Clone 方法,该方法与 Java 中的功能相同。
-
@S_F 但是使用
ArrayList而不是通用的List<T>大多不是一个好主意。 -
@AndyKorneyev 是的,但我觉得这种情况很有趣。
-
这当然是一个 C# 问题,但请注意:很少在 Java 中使用
Cloneable/.clone()工具是个好主意。实现你自己的克隆机制(无论你的规范需要什么深度),记录它,然后继续。 Java 的克隆从第一天就被打破了。这也不是一个浅薄与深层次的争论。这个设施一团糟。