【发布时间】:2011-08-19 13:39:12
【问题描述】:
我正在为我的雇主对第三方产品进行相当广泛且持续的修改。实现我的代码时的主要考虑因素之一是尽可能地将其隔离,以使来自供应商的更改的集成尽可能轻松。到目前为止,完成此任务的最有用的工具之一是部分类。使用部分类,我可以将必须实现的任何新方法保留在它们自己的文件中。
但是今天我遇到了一个小问题,我需要解决一些问题。假设我需要扩展以下接口。
public partial interface ICondition
{
void MethodA();
void MethodB();
}
通过使界面成为部分界面并添加一个名为 ICondition.CompanyName.cs 的文件
public partial interface ICondition
{
void MethodC();
}
现在我想做的是以我声明它的相同方式实现接口,MethodA() 和 MethodB() 在部分类的一个文件中实现,MethodC() 在另一个文件中实现。
public partial class Condition : ICondition
{
public void MethodA(){ }
public void MethodB(){ }
}
和我的班级 Condition.CompanyName.cs
public partial class Condition : ICondition
{
public void MethodC() { }
}
这当然行不通,因为接口必须全部在同一个文件中实现。我希望有一些声明,或者我不知道的一些语法魔术,可以让我做我想做的事情,并将这些方法保存在单独的文件中,但接口相同。
编辑
这确实有效,我的问题是由于一个愚蠢的拼写错误,我的 2 个部分类位于不同的命名空间中。我想我今天早上开始的有点早,感谢大家的时间和关注。
【问题讨论】:
-
周五的感觉是允许的,我设法忘记了 C# 早一点在答案中有
ref关键字......我的意思是,怎么?!? -
@Adam,因为没有人用过它
-
@RichK 是的,但我通过回答“如何通过引用传递值类型?”这个问题让情况变得更糟。用“你不能,C# 不支持……”哈哈!
-
@Adam 哇哦,忘记它是一回事,直接否认它的存在是很特别的!
标签: c# partial-classes