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

标签 c# methods partial

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

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

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

请注意,我不能使用继承来解决问题。开源库将包含大量对 Employee 类的引用,我无法承担全部更改的费用。

最佳答案

当您这样做时,您是在自己编译库,对吧?

我知道您不想子类化 Employee,因为这样所有执行 new Employee() 的库代码都将无法工作。但是,如果您在 Orig.cs 中将 Employee 重命名为 EmployeeBase,并在 Custom.cs 中提供类 Employee 会怎样?这样当编译库代码时,new Employee() 将引用您的类,而不是库类。由于您在同一个项目中编译库和自定义项,因此可以进行此替换。

关于c# - 在 C# 中跨两个文件拆分一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13049403/

相关文章:

Java:无法附加文本区域

asp.net - 使用 javascript、jquery 将 .ascx 页面呈现为 .aspx 页面

android - 是否可以为屏幕/Activity 的每个部分设置不同的亮度级别?

c# - ASP.NET Core 中的持久内存并发字典

c# - 如何查看我的windows服务器是虚拟机还是物理机

c# - 使用 TextBox 动态过滤名称的 DataGrid

c# - 有没有办法调整其内容的边框大小? (Winnrt Xaml)

java - 方法是否抽象

javascript 使用函数的方法创建对象的更好方法

mysql - sphinx 搜索部分关键字匹配