当前位置:首页 > C#学习 > 正文内容

C# 接口的显示和隐示

小道5年前 (2018-12-12)C#学习3927

隐示实现接口和类都可以访问

显示实现只有接口可以访问。


显示接口实现与隐式接口实现的适应场景

当类实现一个接口时,通常使用隐式接口实现,这样可以方便的访问接口方法和类自身具有的方法和属性。

当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现。即使没有相同的方法签名,仍推荐使用显式接口,因为可以标识出哪个方法属于哪个接口。

隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。


显示实现益处


1:隐藏代码的实现

2:在使用接口访问的系统中,调用者只能通过接口调用而不是底层的类来访问。

PS:可以运用到公司目前的接口+Sevice架构的系统中。避免我们总是要求大家一定要通过接口访问。因为现在不用接口访问也不行了。

示例:

using System;

namespace 显示实现接口
{
    class Program
    {
        static void Main(string[] args)
        {
            IInterface i = new MyClass();
            i.A();//调用接口A方法,接口显示 只能使用接口调用
            i.B();//调用接口B方法
            //无法调用类里面的方法。
            MyClass m = new MyClass();
            m.A();//调用类的A方法
            m.C();//调用类的C方法
            m.B();//调用接口的B方法,
            //无法调用接口显示方法。
            Console.ReadKey();
        }
    }
    class MyClass:IInterface
    {
        public void A()//类的A方法
        {
            Console.WriteLine("我是类的A方法。");
        }
        public void C()//类的C方法
        {
            Console.WriteLine("我是类的C方法。");
        }
        void IInterface.A()//接口的A方法(显示),由于类中已经有了同名的A方法,要实现接口的方法,必须使用接口的显示方法。
        {
            Console.WriteLine("我是接口A显示方法。");
        }
        public void B()//接口的B方法。
        {
            Console.WriteLine("我是接口B隐示方法。");
        }
    }

    public interface IInterface
    {
        void A();
        void B();
    }
}

输出结果:

接口的显示和隐示

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/140.html

分享给朋友:

“C# 接口的显示和隐示” 的相关文章

while语句:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出(return)。

while语句:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出(return)。

while语句:不断要求用户输入一个数字,然后打印这个数字的二倍,当用户输入q的时候程序退出(return)。            Console.WriteLine("...

while语句:编写聊天机器人,如果问“今天天气怎么样?”则回答天气 ,如果问……,如果说“88”,则“再见”。

while语句:编写聊天机器人,如果问“今天天气怎么样?”则回答天气 ,如果问……,如果说“88”,则“再见”。

while语句:编写聊天机器人,如果问“今天天气怎么样?”则回答天气 ,如果问……,如果说“88”,则“再见”。            Console.WriteLine(&quo...

构造函数

构造函数

构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。构造函数可以有参数,new对象的时候传递函数参数即可构造函数可以重载,也就是有多个参数不同的构造函数。如果不指定构造函数,则类有一个默认的无参构造函数。如果指...

常量

常量

const常量。常量名要大写。一定不会变化的值才能声明为常量。常量一旦声明,下面就不可更改(再赋值)。    class Program     {     &nbs...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。