gpt4 book ai didi

c# - 是否可以将一个接口(interface)分解为 2 个部分接口(interface)并在 2 个部分类中实现它?

转载 作者:IT王子 更新时间:2023-10-29 04:44:29 25 4
gpt4 key购买 nike

我正在为我的雇主对第三方产品进行相当广泛和持续的修改。实现我的代码时的主要考虑因素之一是尽可能地隔离它,以使来自供应商的更改集成尽可能轻松。到目前为止,完成此任务最有用的工具之一是分部类。使用部分类,我可以将必须​​在它们自己的文件中实现的任何新方法保留下来。

但是今天我遇到了一个小问题,我需要解决一些问题。假设我需要扩展以下接口(interface)。

public partial interface ICondition
{
void MethodA();
void MethodB();
}

通过使接口(interface)成为部分接口(interface)并添加一个名为 ICondition.CompanyName.cs 的文件

public partial interface ICondition
{
void MethodC();
}

现在我想做的是按照我声明它的方式实现接口(interface),MethodA()MethodB() 在一个文件中实现部分类,和 MethodC() 在另一个。

public partial class Condition : ICondition
{
public void MethodA(){ }
public void MethodB(){ }
}

和我的类(class) Condition.CompanyName.cs

public partial class Condition : ICondition
{
public void MethodC() { }
}

这当然行不通,因为接口(interface)必须全部在同一个文件中实现。我希望有一些我不知道的声明或一些语法魔法,这将允许我做我想做的事,并将这些方法保存在不同的文件中,但接口(interface)相同。

编辑

这确实有效,我的问题是由于一个愚蠢的拼写错误,我的 2 个部分类位于不同的命名空间中。我想我今天早上起得太早了,感谢大家的时间和关注。

最佳答案

在这个实例中你不需要有部分接口(interface),你应该仍然能够把方法放在你想要的地方。

This of course doesn't work, as the interface must be implemented all in the same file

我不明白你的例子怎么行不通,我只是做了以下事情:

partial interface IFoo
{
void One();
void Two();
}

partial class Class1 : IFoo
{
public void Two()
{ }

public void Three()
{ }
}

在一个文件中。

partial interface IFoo
{
void Three();
}

partial class Class1 : IFoo
{
public void One()
{ }
}

在另一个...

关于c# - 是否可以将一个接口(interface)分解为 2 个部分接口(interface)并在 2 个部分类中实现它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com