在C#中跨两个文件拆分方法

时间:2012-10-24 12:38:54

标签: c# methods partial

是否可以在C#中跨两个文件拆分方法?我知道有部分方法,但他们似乎无法做到这一点。

这是场景。我正在使用开源库,需要在一个或多个文件中添加一些自定义。例如,我想在类Employee中添加两个新字段,然后在该类的InitializeFields()方法中初始化它们。由于开源项目不断发展,并且不时发布新版本,我希望将自定义与原始项目分开,以便轻松升级到库的新版本。

我已使用Orig.cs语法将所有必需的类拆分为Custom.cspartial class,并在Custom.cs中添加了自定义字段。现在的问题是我无法拆分InitializeFields()方法,因此我的自定义代码会进入Custom.cs文件。

请注意,我无法使用继承来解决问题。开源库将包含对Employee类的大量引用,我无法更改所有这些引用。

1 个答案:

答案 0 :(得分:5)

当你这样做时,你自己编译图书馆,对吧​​?

我知道您不希望继承Employee,因为那样new Employee()的所有库代码都不起作用。但是,如果您在Orig.cs中将Employee重命名为EmployeeBase,并在Custom.cs中提供类Employee,该怎么办?这样编译库代码时,new Employee()将引用您的类,而不是库类。由于您在同一项目中编译库和自定义项,因此可以进行此替换。