首 页IT知识库收藏内容
当前位置:翔宇亭IT乐园IT知识库C#C#基础

消除C#中接口的二义性

减小字体 增大字体 作者:本站  来源:本站原创  发布时间:2013-06-09 09:28:20

在本站中的另外两篇文章里比较详细的介绍了接口的含义及定义和实现方法,本文中重点介绍由于接口的多继承而导致的二义性问题。

另外两篇文章的连接:

(1)C#中的接口

(2)C#中接口的使用方法

在C#中不支持多重继承的一个重要原因就是命名冲突问题,命名冲突会导致二义性。C#虽然不支持类的多重继承,但支持接口的多重继承,这同样会导致二义性的产生。下面的例子将演示二义性的产生的原因及消除二义性的一个办法:

using System;
interface Donkey
{
   void Run();
}
interface Horse
{
    void Run();
}
class Mule:Donkey,Horse
{
    void Donkey.Run()
    {
       Console.WriteLine("小驴劲儿真大阿");
    }
    void Horse.Run()
   {
        Console.WriteLine("马奔跑能力真强!");
   }
}
class Test
{
   static void Main()
   {
      Mule m = new Mule();
     ((Donkey)m).Run();
     ((Horse)m).Run();
    }
}

运行结果如下:

消除接口的二义性

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

Tags:C# 接口

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2024 biye5u.com. All Rights Reserved.