您的位置:知识库 » .NET技术

C#中的接口

作者: 吕震宇  来源: 博客园  发布时间: 2009-02-27 13:56  阅读: 8365 次  推荐: 0   原文链接   [收藏]  
摘要:本文将通过以下四个案例来分析C#中的接口究竟是如何工作的。
[1] 公有方法实现接口方法
[2] 私有方法不能实现接口方法
[3] 实现专门的接口方法(1)
[4] 实现专门的接口方法(2)
4、实现专门的接口方法(2)

如果EditBox中的Pait方法为公有并且同时提供了IControl.Paint方法,程序将是如何运行的呢?代码如下:

using System ;
interface IControl 
{
   void Paint();
}
public class EditBox: IControl 
{
   public void Paint() 
   {
      Console.WriteLine("Pain method is called!");
   }
   void IControl.Paint() 
   {
      Console.WriteLine("IControl.Pain method is called!");
   }
}
class Test 
{
   static void Main() 
   {
      EditBox editbox = new EditBox(); 
      editbox.Paint();
      ((IControl)editbox).Paint();
   }
}

程序执行结果如下:

Pain method is called!
IControl.Pain method is called!

程序执行时内存布局如下:

可见,EditBox中公有的Paint方法并不是接口实现方法,真正的接口实现方法是IControl.Paint,这将导致editbox.Paint()方法与((IControl)editbox).Paint()的执行结果并不一样。

5、结论

接口方法的实现通常是通过类中的公有方法实现的;

在一些特殊情况下(代码隐藏、一个类实现的两个接口具有相同的接口方法等),需要专门实现某个接口的方法。

0
0
标签:CLR

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻