是否可以在C#中跨两个文件拆分方法?我知道有部分方法,但他们似乎无法做到这一点。
这是场景。我正在使用开源库,需要在一个或多个文件中添加一些自定义。例如,我想在类Employee
中添加两个新字段,然后在该类的InitializeFields()
方法中初始化它们。由于开源项目不断发展,并且不时发布新版本,我希望将自定义与原始项目分开,以便轻松升级到库的新版本。
我已使用Orig.cs
语法将所有必需的类拆分为Custom.cs
和partial class
,并在Custom.cs
中添加了自定义字段。现在的问题是我无法拆分InitializeFields()
方法,因此我的自定义代码会进入Custom.cs
文件。
请注意,我无法使用继承来解决问题。开源库将包含对Employee类的大量引用,我无法更改所有这些引用。
答案 0 :(得分:5)
当你这样做时,你自己编译图书馆,对吧?
我知道您不希望继承Employee
,因为那样new Employee()
的所有库代码都不起作用。但是,如果您在Orig.cs中将Employee
重命名为EmployeeBase
,并在Custom.cs中提供类Employee
,该怎么办?这样编译库代码时,new Employee()
将引用您的类,而不是库类。由于您在同一项目中编译库和自定义项,因此可以进行此替换。