我想做的事情如下:
MyObject myObj = GetMyObj(); // Create and fill a new object
MyObject newObj = myObj.Clone();
Run Code Online (Sandbox Code Playgroud)
然后更改未在原始对象中反映的新对象.
我不经常需要这个功能,所以当有必要的时候,我已经使用了创建一个新对象然后单独复制每个属性,但它总是让我觉得有更好或更优雅的处理方式情况.
如何克隆或深度复制对象,以便可以修改克隆对象而不会在原始对象中反映任何更改?
我有一点C#初学者问题.但我很确定它很容易解决.
foreach(var test in Tests)
{
object testObj = new object();
//Do something with the object
}
Run Code Online (Sandbox Code Playgroud)
如果我这样做,每次我循环时对象testObj都会被覆盖.是否有可能不是每次都覆盖它?或者我必须使用数组?
编辑:好的抱歉,我会尝试更具体:我的目标是在这个循环中创建一些对象然后我用每个对象调用一个新线程.在那里,我想对对象做点什么,当我完成时,我想释放它.
托马斯的Edit2:
foreach (var test in Tests)
{
object testObj = new object();
//Set some properties of the object
Thread t = new Thread(() => manager(testObj));
t.Start();
}
public void manager(object testObj)
{
//Do something with the object
//Release it
}
Run Code Online (Sandbox Code Playgroud)