c#控制台基础函数的参数是接口实现接口的类都可以作为参数,很好用

author author     2022-08-07     790

关键词:

1、代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    //为了便于观看,我就把接口和类都写在一个.cs文件中了
    public interface ISay
    {
        void Say();
    }
    class Student : ISay
    {
        public void Say()
        {
            Console.WriteLine("我是一个学生,我的任务是学习");
        }
    }
    class Teacher : ISay
    {
        public void Say()
        {
            Console.WriteLine("我是一个老师,我的任务是教书育人");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Introduce(new Student());
            Introduce(new Teacher());
            Console.ReadKey();
        }

        public static void Introduce(ISay h)
        {
            h.Say();
        }
    }

}

 

 

2、效果

技术分享

 

把接口作为函数的参数,那么任何实现了接口的类的实例都可以作为此函数的参数传递

把接口作为函数的参数,那么任何实现了接口的类的实例都可以作为此函数的参数传递     查看详情

collection的简介

...et。所有实现Collection接口的类都必须提供两个标准的构造函数:无参数的构造函数用于创建一个空的Collection,有一个Collection参数的构造函数用于创建一个新的Collection,这个新的Collection与传入的Collection有相同的元素。后一个 查看详情

c#中类似javamap功能的语句是啥

...合类对象和N个元素对象因为任何集合类都实现了IEnumerable接口,所以任何集合类对象都有一个GetEnumerator()方法,该方法可以返回一个实现了IEnumerator接口的对象,这个返回的IEnumerator对象既不是集合类对象,也不是集合的元素类... 查看详情

c#怎样使数据长期驻留在内存中,怎样可以管理这个时间?

...功能的访问,是建立.NETFramework应用程序、组件和控件的基础。DotNetFrameWork所有的类都包含在命名空间里面。命名空间.NETFramework类库提供下列命名空间:▲Microsoft.CSharp包含支持用C#语言进行编译和代码生成的类。▲Microsoft.JScript... 查看详情

c#浅谈接口(interface)的作用

继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的 1.接口用于描述一组类的公共方法/公共属性.它不实现任何的方法或属性,只是告诉继承它的类《至少》要实现哪些功能,继... 查看详情

wcf基础

 注意:通过控制台启动wcf服务,必须以管理员身份运行vs,不然报错;   新建wcf服务库(有两个重要的组成部分接口和实现这个接口的类)【也可以新建一个类库,自己定义接口和实现这个接口的类;接口需要&nbs... 查看详情

静态代理[装饰设计模式]的具体实现(代码片段)

静态代理的运用场景:在原来的类的基础上进行扩展,与继承类相比,扩展性更强应用的技术:反射+多态核心思想:<1>原来的类不允许修改<2>有扩展需求<3>继承可以解决问题,但有局限性,只能实现一个类,想实... 查看详情

[golang]语法基础之接口(代码片段)

说明接口可以理解为是定了一种约定,是一个较为抽象的类型。和之前说过的具体的类型例如string、map等是不一样的。一般来说,具体的类型,我们可以知道它是什么,并且可以知道它可以用来做什么。但是对于接口来说,接口... 查看详情

java基础总结--泛型在类接口方法匿名类元组等使用堆栈例子商店模型(代码片段)

为什么使用泛型:   在面向对象编程语言中,多态算是一种泛化机制。例如,你可以将方法的参数类型设为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法更通用一些,可... 查看详情

java基础总结--泛型在类接口方法匿名类元组等使用堆栈例子商店模型(代码片段)

为什么使用泛型:   在面向对象编程语言中,多态算是一种泛化机制。例如,你可以将方法的参数类型设为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法更通用一些,可... 查看详情

c#接口学习

...,回来继续更新文章吧。一.接口  接口是一组包含有函数型方法的数据结构(只有声明,没有具体实现),即接口中可以含有方法、属性、事件,但接口中不能含有字段。注意这些方法、属性只有声明,没有实现。接口不能... 查看详情

关于接口的思考

1、接口的意义:以前一直在思考的是接口的意义是什么,我们定义一个类,如果继承了接口,就需要实现接口的全部方法和属性,字段等,那么为什么要继承接口,直接定义我们想要的类就好了,后来随着接触的增多,再加上... 查看详情

.net面试题整理(代码片段)

...等。5、ref修饰参数和out修饰参数的区别ref、out都可以从函数内部传出值,区别是,ref修饰的参数必须先初始化、而out不用6、C#中String和string有什么区别?string是C#中的类,String是Framework的类,如果写的是string,在编译的时候编译... 查看详情

java类的构造函数的参数为接口类型,如何传值?

一个类ClassA实现了接口InterfaceB,而ClassA的构造函数的参数为InterfaceB类型,new类ClassA的对象时如何传参?传入的参数可以是实现了InterfaceB的类~~~例如~ClassCimplementsB~那么newA(newC());是可以的~参考技术A新建一个类实现interfaceTest接口p... 查看详情

java学习零散基础01

接口里面的一般是用final修饰的,private的。用来定义一个接口的关键字interface用来实现一个接口的关键字接口只是声明一组操作规范.  任何类都可以实现它Java语言约定一个类可实现多个接口相当于一个类可以拥有多个父... 查看详情

c#中的接口

 一、接口的定义       接口是一种引用类型,类似于抽象类,主要用来定义一些必须实现的功能。一旦定义了一个接口,而且定义了一个实现这个接口的类,使用这些类的用户就可以完成接口定义的... 查看详情

c#接口汇总

1、IComparable和IComparer接口用于比较和排序IComparable可比较的,实现该接口的类,便具有“可比较的”特性。IComparer比较器,实现该接口的类,是一个比较器,可以将其嵌入“类”中,使类具有“可比较的”... 查看详情

接口(c#参考)

...下面的示例,类 ImplementationClass必须实现一个不具有参数并返回 void 的名为 SampleMethod 的方法。示例1interfaceISampleInterface2{3voidSampleMethod 查看详情