c# - 如何在c#中基于特定的源对象创建各种副本?
问题描述
我有一个 MyObject 类型的复杂 objectA。我想基于特定的 objectA 创建此 MyObject 的多个变体。
public class MyObject()
{
int myAttr1;
string myAttr2;
MyChildObject1 myChildObject1;
MyChildObject2 myChildObject2;
...
}
public List<MyObject> createVariations(MyObject myObject)
{
List<MyObject> myObjectList = new List<MyObject>();
MyObject myFirstVariation = myObject;
myFirstVariation.myAttr1 = myObject.myAttr1 + 5;
myObjectList.Add(myFirstVariation);
// TODO: Do different specific variations of the same source object!
...
return myObjectList;
}
我知道这行不通,因为我只是创建了对 myObject 的多个引用并且我正在更改它的参数,所以列表中会有很多相同对象的引用。
我将如何获得具有不同配置的对象列表。我真的必须为这些对象创建一个复制构造函数吗?先感谢您。
解决方案
推荐阅读
- scrapy - Scrapy spider 不能与 crawlera 中间件一起工作
- typescript - typescript 指的是和 super 方法相同的类型
- java - 在类、枚举等上使用 @Getter
- javascript - 如何从节点 js 发送加密文本并在打字稿中解密?
- javascript - Marklogic 中的非 Null 值 - 在 Marklogic 中搜索具有非空值的数组属性的 JSON 文档
- azure - 管理 Azure WebApp 部署槽和 API 管理器
- html - 如何使用css显示文本旋转?
- qt - 如何导入 QML 单例
- vbscript - 当脚本使用 32 位 wscript/cscript 运行时,从注册表中获取 64 位软件的安装位置
- visual-c++ - 通过使用 nmake 文件附加系统时间来重命名 .exe 文件