我只是想知道这两个方法中的哪一个,来自IFirstInterface或ISecondInterface的bool IsReal(),我们现在实际上在ExampleClass中使用:
interface IFirstInterface
{
bool IsReal();
}
interface ISecondInterface
{
bool IsReal();
}
public class ExampleClass : IFirstInterface, ISecondInterface
{
public bool IsReal() {}
//public bool IsReal is IFirstInterface or ISecondInterface method.
}
拜托,有人可以解释一下隐式界面在C#中是如何运作的。
答案 0 :(得分:2)
在Explicit Interface Implementation guide中,您可以阅读以下语句:
如果一个类实现了两个包含一个成员的接口 相同的签名,然后在类上实现该成员将导致 两个接口都使用该成员作为其实现。
您可以显式实现一个或两个接口以覆盖此行为:
interface IFirstInterface
{
bool IsReal();
}
interface ISecondInterface
{
bool IsReal();
}
public class ExampleClass : IFirstInterface, ISecondInterface
{
// will be used for IFirstInterface
bool IFirstInterface.IsReal(){}
// will be used for ISecondInterface
public bool IsReal(){}
}
答案 1 :(得分:0)
为清楚起见,您应该实现这两个功能 public bool IFirstInterface.IsReal(){} public bool ISecondInterface.IsReal(){}