一段 接口方面代码 的问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:32:32
public class myclass :myinterface
{
void myinterface.dosomething();
{
}//第一种

public void dosomethingelse();
{
}//第二种

}

书上说 当类显式支持一个接口时,用第二种方法访问.当类隐式支持一个接口时,用第一种方法访问.

搞不懂,到底是什么意思呢?这个例子里只是把在类里面定义函数的不同方式弄出来了,可是它说的前者和后者的区别:后者可以直接用对象访问,前者不可以.并没有体现出来啊!
请高手指点一下!

代码不完整。。但是我想可能是这个意思。
interface myinterface
{
void dosomething();
void dosomethingelse();
}

public class myclass :myinterface
{

// 已经有了一个dosomething方法
void dosomething()
{
Console.WriteLine("A");
}

void myinterface.dosomething();
{
Console.WriteLine("B")
}//第一种

public void dosomethingelse();
{
Console.WriteLine("C")
}//第二种

}

也就是说,你的接口里面定义了两个方法,dosomething 和dosomethingelse。
在你实现接口的类里面,已经有了一个dosomething方法,所以你需要显示的去实现myinterface 里面的dosomething,也就是你的第一种。。
而另外一种只需要隐式的实现就可以了。

那么如果你的调用方式如下:
myinterface callbyinterface=new myclass()
callbyinterface.dosomething()将会调用myclass里面的myinterface.dosomething();也就是第一种,输出B

但是如果是:
myclass callbyclass=new myclass()
callbyclass.dosomething()将会调用我加的那个方法,输出A。

而callbyinterface.dosomethingelse和callbyclass.dos