C# IClonable和分部类之间有什么区别

C# IClonable和分部类之间有什么区别,c#,C#,使用System.IClonable和分部类有什么区别?如果有一个区别,什么时候应该使用一个而不是另一个?有一些最佳做法吗?这两种做法完全不同,没有任何共同之处 用于克隆对象。创建如何复制对象的自定义实现。由MSDN提供: 支持克隆,这将创建具有 与现有实例的值相同 -这只是将变大的文件拆分为2个或更多不同文件的一种方法。一个常见的例子是winforms,其中一个部分处理UI,另一个部分处理代码隐藏 部分类 需要拆分类定义时,有几种情况: 在处理大型项目时,将一个类分散在不同的文件上可以使多个程

使用System.IClonable和分部类有什么区别?如果有一个区别,什么时候应该使用一个而不是另一个?有一些最佳做法吗?

这两种做法完全不同,没有任何共同之处

用于克隆对象。创建如何复制对象的自定义实现。由MSDN提供:

支持克隆,这将创建具有 与现有实例的值相同

-这只是将变大的文件拆分为2个或更多不同文件的一种方法。一个常见的例子是winforms,其中一个部分处理UI,另一个部分处理代码隐藏

部分类

需要拆分类定义时,有几种情况: 在处理大型项目时,将一个类分散在不同的文件上可以使多个程序员同时处理它

使用自动生成的源代码时,可以将代码添加到类中,而无需重新创建源文件。VisualStudio在创建Windows窗体、Web服务包装器代码等时使用这种方法。您可以创建使用这些类的代码,而无需修改VisualStudio创建的文件

要拆分类定义,请使用分部关键字修饰符,如下所示:

public partial class Employee
{
    public void DoWork()
    {
    }
}

public partial class Employee
{
    public void GoToLunch()
    {
    }
}
易克隆的

iClonable接口使您能够提供定制的实现,以创建现有对象的副本。iClonable接口包含一个成员Clone方法,该方法旨在提供Object.MemberwiseClone提供的克隆支持之外的克隆支持。有关克隆、深拷贝与浅拷贝以及示例的更多信息,请参阅Object.MemberwiseClone方法

public interface ICloneable
资料来源:

它们有什么相似之处?你的问题很不清楚。IClonable类和分部类彼此无关。IClonable声明了一个应该实现的方法克隆,以便它生成一个现有方法的克隆实例。分部类是一种编译时功能,用于将类的代码拆分为单独的文件。