可以派生 C# 接口定义“覆盖”函数定义?
我正在定义一个通用 API,它将有许多更具体的派生,并且想知道 C# 接口是否足够强大来对此进行建模,如果是,如何建模,如果不是,我可以如何建模。
为了说明我正在尝试做的事情,想象一个具有通用接口的身份验证 API,该接口具有带有抽象 AuthenticationToken 的 Authenticate 函数。然后,我想创建该接口的更具体形式,如图所示。
abstract class AuthenticationToken
{
}
interface IAthentication
{
bool Authenticate(string name, AuthenticationToken token);
}
class DoorKey : AuthenticationToken
{
}
interface IDoorAthentication : IAthentication
{
bool Authenticate(string name, DoorKey token);
}
class DoorUnlocker : IDoorAthentication
{
public bool Authenticate(string name, DoorKey token)
{
}
}
我的意图是派生接口被限制为符合高级形式,但这不是 C# 的解释方式。
最好的问候
帮助我约翰斯基茨..你是我唯一的希望。 (抱歉..我的星球大战蓝光已经到了!)
I am defining a geenral API which will have a number of more specific derivations and want to know if C# interfaces are powerful enough to model this, and if so how, and if not how else I might model this.
To illustrate what I am trying to do imagine an authentication API with a general interface with an Authenticate function which takes an abstract AuthenticationToken. I want to then create more specific forms of this interface with as shown ..
abstract class AuthenticationToken
{
}
interface IAthentication
{
bool Authenticate(string name, AuthenticationToken token);
}
class DoorKey : AuthenticationToken
{
}
interface IDoorAthentication : IAthentication
{
bool Authenticate(string name, DoorKey token);
}
class DoorUnlocker : IDoorAthentication
{
public bool Authenticate(string name, DoorKey token)
{
}
}
My intention is that the derived interface is constrained to comply with the high level form but that is not how C# interprets this.
Best Regards
Help me John Skeets .. you're my only hope.
(Sorry .. my Star Wars BluRays have arrived!)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这就是您想要的:
带有约束的泛型!
This is what you want:
Generics with constraints!