C#语法:在实现的声明中放置接口的名称

M. *_*ley 4 c# syntax interface

我在WPF的类的复合应用程序库源代码中遇到了一些我不熟悉的有趣的C#语法.DelegateCommand<T>

有一些方法声明以ICommand接口名称为前缀,并且它们没有指定可访问性修饰符.例如:

bool ICommand.CanExecute(object parameter) { ... }
Run Code Online (Sandbox Code Playgroud)

这个语法叫什么,我在哪里可以阅读更多信息?我假设有一个隐含的public,但我无法弄清楚指定类名的好处是什么.我的猜测是它可能只适用于组织.

Nic*_*ver 7

当你放置这样的方法时,你会说这是接口显式实现.您可以通过该链接阅读MSDN上的好教程.

此外,比较可能有助于全面了解这意味着什么.


Mit*_*eat 5

它被称为显式接口实现:

如果一个类实现了两个包含具有相同签名的成员的接口,那么在该类上实现该成员将导致两个接口都使用该成员作为其实现.

但是,如果两个接口成员不执行相同的功能,则可能导致一个或两个接口的错误实现.可以实现接口成员显式创建仅通过接口调用的类成员,并且特定于该接口.这是通过使用接口名称和句点命名类成员来完成的.

显式接口实现教程