问题标签 [icloneable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
7233 浏览

c# - 如何使用 ICloneable当 T 是列表时?

我有以下内容:

我想让这个可以克隆。按照此处的示例:为什么没有 ICloneable<T>?

我尝试了以下方法:

但我得到一个编译器错误。错误消息指出 List<Instance> 必须转换为 ICloneable<List<Instance>> 才能在通用接口中使用参数 T ICloneable<T>

我在这里想念什么?

0 投票
6 回答
2609 浏览

c# - 一次性对象克隆会导致 C# 中的内存泄漏吗?

检查此代码:

BitmapICloneableIDisposable在 C# 中。

为了避免内存泄漏,对于 Disposable 对象,通常使用using,那么无论你的代码有多么错误,系统都会自动释放该对象。

在我的示例中,我不能使用,using因为我不想处理该对象,我以后需要它(整个类也会自行处理IDisposable

我的问题是:我有一个imageObject对象,然后我使用它Clone()方法克隆一个新对象并将其提供给旧对象变量。这是否会导致一个(克隆的或原始的)对象无处可去并且永远不会被处置,内存泄漏。

[编辑]

似乎大多数意见都是Clone导致附加对象,旧的应该是Dispose()

这是新代码:

并且应该适当地处置资源。

0 投票
1 回答
3702 浏览

c# - 在派生类中可克隆

假设我有一个类AB它派生自A

这使

警告。

(1) 建议的方法是什么?使用new或声明A.Clone()asvirtualoverridein B?

(2) 如果有一些成员 inA并正确克隆 in A.Clone(),是否有一种简单的方法可以克隆它们,B.Clone()或者我是否也必须显式克隆它们B.Clone()

0 投票
1 回答
1127 浏览

c# - 是否可以强制 ReSharper 实现 ICloneable 接口?

是否有可能使用 ReSharper 6.1 让我的类ICloneable为我实现接口?

如何?

0 投票
3 回答
21097 浏览

vb.net - 克隆一个列表(类)

我已经阅读了一些内容,但似乎无法理解在我的 VB2010 项目中克隆 List(of class) 的最佳方法是什么。我有三个像这样相关的类

因此,假设我有一个正在开发的城市,在某些情况下,我想创建一条道路及其危险,然后添加另一条道路,但使用先前的道路危险作为起点,然后调整字段.

所以我知道复制一个类将复制指针而不是内容。我在危险类中使用了 ICloneable 接口,但不能说我使用正确。Hazards 变量是 Hazard 类别的列表。我将如何克隆该课程?

0 投票
1 回答
3089 浏览

c# - '不实现接口成员'System.ICloneable.Clone()'

我在 Icloneable 接口中调用时遇到了一个小问题

我已经告诉班级我想这样使用接口:

并已放置在克隆功能中

但是由于某种原因,程序告诉我我没有实现 System.ICloneable.clone() 我什至尝试给函数指定明确的名称,就像这样......

但效果不大,有人知道我做错了什么吗?

编辑:全班

0 投票
2 回答
1669 浏览

c# - 我应该实施 ICloneable 吗?

我写了一些代码,发现两个类(即下面的 Fish 和 Mammal)具有相同的模式,所以我决定用泛型来总结。

问题是,我需要从基类部分复制一个构造函数。

此外,这不能使用 new() 约束 (CS0304) 来解决,因为构造函数不是默认的(0 参数)构造函数。

我写这个是因为有人告诉我实现 ICloneable 不是一个好习惯。

Fish 和 Mammal 是唯一从 Animal 派生的类,

我知道他们都实现了复制构造函数。

编辑:不需要深拷贝。

(类型)心脏和肺是单例的,在动物/鱼/哺乳动物之间共享。

0 投票
2 回答
1820 浏览

c# - 创建对象的副本

我需要在 .net 4.5 (c#) 中克隆对象(类,而不是结构)。
我找到了两种方法:

  1. 实现ICloneable 接口
  2. 像这个著名的 SO 答案一样创建自己的克隆机制

我喜欢拳头方式 - 它更容易,但我也发现Not Implpement ICloneable Interface,但这是非常旧的帖子,在 MSDN 上我找不到这个接口已弃用。

有人可以说,在.net 4.5 中使用 ICloneable 是否安全?

0 投票
2 回答
2051 浏览

c# - 实现自定义克隆/复制功能:抽象还是接口?

据我所知,不建议实现ICloneable因为它不区分 Deep Copy 或 Shallow Copy),我正在尝试确定我应该将它实现为抽象还是接口。

我觉得我的实现将基本保持不变,例如二进制深拷贝MemberwiseClone浅拷贝,所以为此我觉得抽象方法是理想的。但是,我的理解也是 C# 不做多重继承,因此如果我需要使用另一个抽象类,那么我不再可以。

在这种情况下,我觉得实现自定义ICloneable(例如ICustomCloneable)会是更好的选择,但如果在许多类中实现实际上是相同的,我觉得我没有充分利用代码重用。

话虽这么说,在我的可克隆类中使用接口来保持抽象继承清晰对于更重要的事情是否有效?还是有其他方法可以做到这一点?

或者,一个抽象实现另一个抽象是否有效(阅读:不臭)?这将是我对绕过阻止我实现 CloneCapable 类以及另一个抽象的单一继承的猜测,但这听起来可能是有问题的。例如:

0 投票
2 回答
1750 浏览

c# - memberwiseclone 是复制 DateTime,还是必须显式设置?

我正在ICloneable大量自定义对象上实现。一些对象的类型为DateTime,它是一个结构值。我知道可以使用 复制这个值newDateTime = oldDateTime,但是如果我MemberwiseClone()在我的对象上使用,它会自动复制DateTime对象吗?我认为不是因为DateTime没有实现ICloneable自己。