隐式和显式接口的区别

隐式和显式接口的区别


(隐式的实现不再探讨,只剖析显式的接口实现。)

定义的接口如下:两个接口的方法名及参数都相同

interface ICustomA
{
    Int32 CompareTo(string obj);
}
interface ICustomB
{
    Int32 CompareTo(string obj);
} 

类的实现方式如下:一个默认的(类本身的方法),两个显式实现的。

public class Number : ICustomA, ICustomB
{
    // 默认方法
    public int CompareTo(string obj)
    {
        return 0;
    }

    // 显式实现ICustomA
    int ICustomA.CompareTo(string obj)
    {
        return 0;
    }

    // 显式实现ICustomB
    int ICustomB.CompareTo(string obj)
    {
        return 0;
    }
}

三个方法,对应方式的调用方式如下:

    static void Main(string[] args)
    {
        Number p = new Number();
        p.CompareTo("默认");

        ICustomA pA = p as ICustomA;
        pA.CompareTo("显A");

        ICustomB pB = p as ICustomB;
        pA.CompareTo("显B");
    }

CLR读书笔记(2016/6/26 21:26:18)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值