显式接口实现

一个类实现的多个接口里面有相同函数,而多个接口里的相同签名函数确实需要不同的实现,此情况下可以用显示接口避免。

两点注意:需要加接口名限定前缀,不需要加public修饰符,因为显式接口成员只能通过接口来使用,不能通过对象引用使用,所以有时是public,有时是private,不需要加public修饰符。

    interface IInterface
    {
        int Test(string name);
    }

    interface IInterface2
    {
        int Test(string name);
    }

    class MyClass : IInterface, IInterface2
    {
        int IInterface.Test(string name)
        {
            Console.WriteLine("int IInterface.Test(string name)");

            return 1;
        }

        int IInterface2.Test(string name)
        {
            Console.WriteLine("int IInterface2.Test(string name)");

            return 1;
        }
    }
时间: 2024-12-06 11:12:42

显式接口实现的相关文章

vs2010 .net4.0 错误 事件的显式接口实现必须使用事件访问器语法

event EventHandler IDbReference.DbRefEvent; 如果按照以上的写法,会提示错误: 事件的显式接口实现必须使用事件访问器语法 需要修改为一下这种写法 private EventHandler DbRefEvent;        event EventHandler IDbReference.DbRefEvent        {            add            {                DbRefEvent += value; 

A股最新的自由现金流和折现估值查询

A股最新的自由现金流折现估值,利用自由现金流折现的经典公式,采用 8%.9%.10%.11%.12%.15% 等贴现率来进行估值. SH600000:浦发银行的最新自由现金流和折现估值模型: 浦发银行 SH600004:白云机场的最新自由现金流和折现估值模型: 白云机场 SH600005:武钢股份的最新自由现金流和折现估值模型: 武钢股份 SH600006:东风汽车的最新自由现金流和折现估值模型: 东风汽车 SH600007:中国国贸的最新自由现金流和折现估值模型: 中国国贸 SH600008:

MSDN搬运 之 [事件]

在发生其他类或对象关注的事情时,类或对象可通过事件通知它们.发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”. 在典型的 C# Windows 窗体或 Web 应用程序中,可订阅由控件(如按钮和列表框)引发的事件.可使用 Visual C# 集成开发环境 (IDE) 来浏览控件发布的事件,选择要处理的事件.IDE 会自动添加空事件处理程序方法和订阅事件的代码.有关更多信息,请参见如何:订阅和取消订阅事件(C# 编程指南). 事件概述 事件具有以下特点: 发行者确定何时引发

语言独立性和与语言无关的组件

语言独立性和与语言无关的组件 .NET Framework 4.5 .NET Framework 是独立于语言的. 这意味着,作为开发人员,您可以使用面向 .NET Framework 的多种语言(例如,C#.C++/CLI.Eiffel.F#.IronPython.IronRuby.PowerBuilder.Visual Basic.Visual COBOL 以及 Windows PowerShell)之一进行开发. 您可以访问针对 .NET Framework 开发的类库的类型和成员,而不必

读书笔记—CLR via C#章节11-13

前言 这本书这几年零零散散读过两三遍了,作为经典书籍,应该重复读反复读,既然我现在开始写博了,我也准备把以前觉得经典的好书重读细读一遍,并且将笔记整理到博客中,好记性不如烂笔头,同时也在写的过程中也可以加深自己理解的深度,当然同时也和技术社区的朋友们共享 事件 事件的本质 初始化为null的私有委托字段 封装add_Event和remove_Event方法 add_Event和remove_Event的可访问性同Event字段的可访问性,包括virtual和static修饰 事件的编码建议 使用

.NET中的三种接口实现方式

摘自:http://www.cnblogs.com/zhangronghua/archive/2009/11/25/1610713.html 一般来说.NET提供了三种不同的接口实现方式,分别为隐式接口实现.显式接口实现.混合式接口实现.这三种方式各有各的特点. 首先来看隐式接口实现,这恐怕是我们使用最多的一种接口实现,因为隐匿接口实现是.NET的默认接口实现方式.下面让我们来看一个隐式接口实现的例子: using System; internal class MyClass { public

接口和抽象类:Interface、abstract _【转】

一.接口 接口是C#中很常见的工具,概念什么的就不说了,这里讲几个值得注意的小地方: 1.接口内部只能有函数.属性和事件的声明: interface IParent { void Show(); string Type { get; set; } event AddChildren Add; } 在接口中声明的成员都不需要访问修饰符(public,private等),因为接口成员的权限默认都是public,另外值得注意的是接口中之所以能够声明事件是因为事件就是委托的特殊属性. 接口不能是静态的,

C#夯实基础之接口(《CLR via C#》读书笔记)

一. 接口的类型 接口是引用类型.因此从值类型赋值给接口是需要装箱的.如下所示: 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 ISay catSay = new Cat(); 6 catSay.Say(); 7 Console.Read(); 8 } 9 } 10 11 interface ISay 12 { 13 void Say(); 14 } 15 struct Cat : ISay 16 { 17 public

【C#】ConcurrentBag<T> 方法

转载自MSDN. ConcurrentBag<T> 类型公开以下成员. 方法 显示: 继承 保护   名称 说明 Add 将对象添加到 ConcurrentBag<T> 中. CopyTo 从指定数组索引开始,将 ConcurrentBag<T> 元素复制到现有的一维 Array 中. Equals(Object) 确定指定的 Object 是否等于当前的 Object. (继承自 Object.) Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他