gpt4 book ai didi

c# - 不同方法名的接口(interface)实现

转载 作者:太空狗 更新时间:2023-10-29 22:15:53 24 4
gpt4 key购买 nike

我有这个界面:

public interface INameScope
{
void Register(string name, object scopedElement);
object Find(string name);
void Unregister(string name);
}

但我希望我的实现具有不同的方法名称。我的实现已经有一个具有另一种含义的 Register 方法。

有没有一种方法可以使已实现的方法具有诸如“RegisterName”、“FindName”或“UnregisterName”之类的名称,而不必使用完全相同的名称?

最佳答案

不完全是,但你可以使用 explicit interface implementation :

public class SomeScope : INameScope
{
void INameScope.Register(string name, object scopedElement)
{
RegisterName(name, scopedElement);
}

public void Register(...)
{
// Does something different
}

public void RegisterName(...)
{
// ...
}

...
}

如果您现有的 Register 方法具有类似的参数,我会非常谨慎地执行此操作 - 虽然 编译器 会对此感到满意,但您应该问问自己有多清楚它将写给阅读您的代码的任何人:

SomeScope x = new SomeScope(...);
INameScope y = x;
x.Register(...); // Does one thing
y.Register(...); // Does something entirely different

关于c# - 不同方法名的接口(interface)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32248766/

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