如何在制作克隆时复制自定义属性
本文关键字:复制 自定义属性 | 更新日期: 2023-09-27 18:29:03
我正在C#3.5的"winforms"应用程序中开发"DataGridView"。
我有一个自定义列是"MaskTextColumn",我在其中有一些自定义属性,比如:Mask,"PromptChar"等
当我克隆"MaskTextColumn"时,我的客户属性没有复制到新对象,我想用自定义属性值原样进行克隆。
您需要覆盖自定义派生类中的Clone方法。
类似这样的东西:
public override object Clone()
{
var clonedColumn = base.Clone() as CustomColumn;
clonedColumn.CustomProp = this.CustomProp;
return clonedColumn;
}
您应该覆盖clone方法以包含您的自定义属性。正如该链接所述,
覆盖克隆时。。。请确保还复制任何添加到派生类的属性。
代码如下:
public override Object Clone()
{
object clonedObject = base.Clone();
MaskTextColumn clonedColumn = clonedObject as MaskTextColumn;
clonedColumn.PromptChar = this.PromptChar;
// .. more property settings here
return clonedColumn;
}