|
|
1
6
听起来你在谈论克隆。一些对象将支持此功能(通过
根本
无论是否有副本,因为无论如何都无法更改对象。这是一种方法
|
|
|
2
2
|
|
|
3
2
考虑到你想有一个A的引用,确保引用不被破坏是关键。 在这里使用单例模式难道不会对你也有好处吗? |
|
|
4
1
一种方法是使用复制构造函数。例如。, MyClass orig=。..; 在那里复制MyClass的元素。根据类包含的引用类型的数量,这可能涉及复制构造函数的递归使用。 |
|
|
5
1
我们有一些案例,我们完全按照你说的去做。我们有许多对象引用一个对象的特定实例,我们想更改该对象的实例,以便引用该现有实例的每个对象都能看到更改。
|
|
6
1
其他人在回答中建议克隆,但这只是交易的一部分。您还希望使用(可能是深度)克隆的结果来替换现有对象的内容。这是一个非常类似C++的要求。
它在C++中经常发生的原因是需要跟踪所有权,以便进行清理。如果您有会员:
您的优点是,当封闭对象被销毁时,它将被正确销毁。但如果你想用一个新的向量替换它,你需要
在C#中,你无需为此担忧。有一个正确的方法:
你不必清理它,你可以通过引用换一个新的。两者中最好的。 编辑: 如果您有多个“客户端”对象需要保存对某个对象的引用,并且您希望能够替换该对象,则可以使它们保存对充当“包装器”的中间对象的引用。
|
|
|
7
1
在几个基于WinForms的应用程序中,我需要类似的功能,在我的例子中,允许数据输入表单在对象的副本上工作,只有当用户选择保存更改时,信息才会从该副本复制到原始对象上。
为了实现这一目标,我从德尔菲时代学到了一个想法——
本质上,我编写了(好吧,生成了)一个方法,该方法将属性(和列表内容等)从一个实例复制到另一个实例。这让我可以写这样的代码:
一
顺便说一句,有一个
|
|
|
8
1
如果多个对象需要维护对同一对象(下面的“MyClass”)的引用,并且您需要执行 对于引用的对象(“MyClass”),处理它的最简单方法是创建一个ValueAssign函数,如下所示:
只有在以下情况下才需要观察员 其他 在分配时,依赖对象需要执行操作。如果你只想保留引用,这种方法就足够了。这里的例子与我在问题中提出的例子相同,但我觉得它更好地强调了我的意图。
|
|
|
9
1
我也遇到了同样的问题。 我解决这个问题的方法是将所有事物都引用的对象放在另一个对象内,并让所有事物引用外部对象。然后,您可以更改内部对象,所有内容都可以引用新的内部对象。
|
|
10
0
在c#中不能像在c/c++中那样重载赋值运算符。然而,即使这是一种选择,我也会说你试图解决症状而不是问题。你的问题是,分配新的引用会破坏代码,为什么不直接将读取的值分配给原始引用呢?如果你担心其他人可能会新建和分配对象,请将对象设置为单例或类似对象,以便在创建后无法更改,但引用将保持不变 |
|
11
0
例如:
然后,您将拥有一个带有某种字典的静态类,您可以在其中快速检索单例实例(或者在不存在的情况下创建它)。 虽然这可能对你有效,但我也同意其他人的观点,即这很少是最好的(或唯一的)方法。当然有一种方法可以重构你的代码,这样就没有必要了,但你应该提供一些额外的信息,说明预期用途是什么,从哪里访问这些数据,或者只是为什么类真的需要引用一个对象。 [编辑] 既然你 是 适当地
但从你的例子中仍然不清楚你到底是如何通知客户数据已经更新的。事件驱动机制会更好地工作,因为它允许您解耦代码- Singletons are evil . |
|
|
12
0
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |