今天看见一段代码,实现一个接口的方法的时候是这样的(代码在里面),请看以下

崔鹏飞 2008-08-19 10:15:11
这个叫做什么?以前没见过
用于什么用途?
有什么好处???

interface IMyInterface
{
void MyMethod();
}

class MyClass : IMyInterface
{
void IMyInterface.MyMethod()
{
Console.WriteLine("void IMyInterface.MyMethod()");
}

public void MyMethod()
{
Console.WriteLine("public void MyMethod()");
}
}

class Test_Interface
{
public static void Main()//Main_1_5_3
{
MyClass mc = new MyClass();
((IMyInterface)mc).MyMethod();
mc.MyMethod();
Console.Read();
}
}
...全文
309 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
suen.sun 2008-08-22
  • 打赏
  • 举报
回复
很明显,这是显示接口实现。第一个实现是属于接口,第二个是属于当前类的实例。这两个方法不算是重载。
panzi667 2008-08-22
  • 打赏
  • 举报
回复
学习一下
崔鹏飞 2008-08-22
  • 打赏
  • 举报
回复
现在基本明白了的说[Quote=引用 16 楼 GhostAdai 的回复:]
楼主是哪一段代码不明白呢,这不就是实现接口的代码吗?只不过是显式实现的而已。
[/Quote]
GhostAdai 2008-08-22
  • 打赏
  • 举报
回复
楼主是哪一段代码不明白呢,这不就是实现接口的代码吗?只不过是显式实现的而已。
崔鹏飞 2008-08-22
  • 打赏
  • 举报
回复
主要是给学多了头晕找的借口.........[Quote=引用 14 楼 kahn520 的回复:]
不怕慢,就怕站.每天学习一点点~~,说的好
[/Quote]
kahn520 2008-08-22
  • 打赏
  • 举报
回复
不怕慢,就怕站.每天学习一点点~~,说的好
崔鹏飞 2008-08-20
  • 打赏
  • 举报
回复
thanks
哦,做重载也可以吧?
LQknife 2008-08-20
  • 打赏
  • 举报
回复

显式接口实现!!
amandag 2008-08-20
  • 打赏
  • 举报
回复
你成员方法MyMethod屏蔽掉你在看看
崔鹏飞 2008-08-20
  • 打赏
  • 举报
回复
不是啊,我这里有两个实现的[Quote=引用 6 楼 amandag 的回复:]
显式接口实现

此方法属于接口而不属于对象


你可以

IMyInterface i = new MyClass();
i.MyMethod();

但不能
MyClass i = new MyClass();
i.MyMethod();
[/Quote]
welldragonc 2008-08-20
  • 打赏
  • 举报
回复
显式接口实现
Zine_Alone 2008-08-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cuipengfei1 的回复:]
thanks
哦,做重载也可以吧?
[/Quote]

是的
amandag 2008-08-20
  • 打赏
  • 举报
回复
显式接口实现

此方法属于接口而不属于对象


你可以

IMyInterface i = new MyClass();
i.MyMethod();

但不能
MyClass i = new MyClass();
i.MyMethod();
yagebu1983 2008-08-20
  • 打赏
  • 举报
回复
显式接口实现!!
崔鹏飞 2008-08-20
  • 打赏
  • 举报
回复
oh,yeah~~
崔鹏飞 2008-08-20
  • 打赏
  • 举报
回复
我姓区不姓区 2008-08-20
  • 打赏
  • 举报
回复
显式接口实现
崔鹏飞 2008-08-20
  • 打赏
  • 举报
回复
我知道那个意思,我是说我有两个实现的[Quote=引用 10 楼 amandag 的回复:]
你成员方法MyMethod屏蔽掉你在看看
[/Quote]
Zine_Alone 2008-08-19
  • 打赏
  • 举报
回复

void IMyInterface.MyMethod()
{
Console.WriteLine("void IMyInterface.MyMethod()");
}


这是显示继承接口,一般来说主要是2种作用:
1.使用显示继承接口时,这个class从外部访问是访问不到这个接口方法的,只能是先将这个class转化为这个接口再进行调用.
这也是属于保护或者隐藏一些方法和属性.
2.就是当你的class中存在和接口中相同的方法,为了避免冲突,也会这样使用
显示继承的作用


110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧