繁体   English   中英

在C#中,是否可以使用具有不同名称的成员实现接口成员,就像在VB.NET中一样?

[英]In C#, is it possible to implement an interface member using a member with a different name, like you can do in VB.NET?

好吧,这是一个我要问的问题,而不是在展示良好的编码实践(这实际上可能被认为是一种不好的做法),而是在“可以”的问题上完成。

也就是说,在VB.NET中你实现了这样的接口......

Sub SomeInterfaceMember()
    Implements ISomeInterface.SomeInterfaceMember
End Sub

而在C#中你明确地这样做(只能通过界面调用)......

void ISomeInterface.SomeInterfaceMember(){}

或者更简单地,隐含地像这样(在这种情况下你可以直接调用它,或通过接口)......

void SomeInterfaceMember(){} // <-- This name matches the interface member

但是,关于VB,您也可以使用您想要的任何名称来执行此操作...

Sub SomeRandomMemberName() // <-- This name doesn't match the interface member
    Implements ISomeInterface.SomeInterfaceMember
End Sub

换句话说,处理实现的方法可以具有与接口的成员名称完全不同的名称。

我只是想知道在C#中是否有类似的东西。 (是的,我知道我可以简单地做一个显式接口,然后通过另一个'wrapper'成员使用一个简单的委托给它的不同名称来访问它,但是在VB.NET中,你只需要一个方法。)

那可以做到吗?

标记

不,这在C#中是不可能的。 (你不能在VB.NET中“显式实现接口”。)

它可以通过使用显式实现+调用该实现的公共方法来实现与VB场景基本无法区分的结果。

除了涉及反思的案例,这真的最终会成为同样的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM