C#学习笔记8:接口、委托、事件

本文详细介绍了C#中的接口、委托和事件概念,包括接口如何实现多重继承、委托作为方法代理的作用以及事件的触发和订阅机制。通过实例演示了如何在C#中使用这些特性来设计和实现类的行为.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今日继续我的C#学习之路,今日学习接口、委托、事件,文章从实践出发学习这三个设计理念,并提供完整源码

目录

1、接口(多重继承):

代码:

运行结果:

2、委托(方法的代理/函数指针):

创建控制台程序实现委托:

遇到的报错及解决:

修改后的代码:

运行结果:

3、事件:

 定义事件:

创建控制台程序,假设一个热水器

代码:

运行结果:


1、接口(多重继承):

C#不支持类的多重继承,但可以继承多个接口

C#中的多重继承要用接口来实现,接口就是为了实现多继承而产生的,

C#中,接口可多继承,接口之间可互相继承,普通类和抽象类可以继承自接口,一个类可以同时继承一个类和多个接口,但是接口不能继承类

(1)接口名是任意合法的标识符,建议以大写I开头。
(2)声明的接口可以继承一个基类和多个其他接口。
(3)接口修饰符可以是new、public、protected、internal、private。
(4)接口成员前面不允许有修饰符,都默认为公有成员。
(5)接口成员可以分为四类-方法、属性、事件和索引器,而不能包含成员变量

(6)不能在声明接口的同时编写接口成员的实现代码。 

接口要通过继承才能实现,即定义继承接口的类,并在类中实现所有的接口成员

class 类名:[基类名],接口名1,接口名2...
{
    类成员
}

定义的类必须提供被继承接口中所有成员的实现,否则将产出编译错误

代码:

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

namespace Ipoint_YZH
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //应用接口的派生类Point实例化一个新的对象并进行初始化赋值
            Point p = new Point(5,30);
            Console.WriteLine("创建的点坐标是:x={0},y={1}\n",p.x,p.y);
            Console.ReadLine();
        }
        public interface IPoint
        {
            int x { get; set; }//定义属性成员x,他含有读写的抽象访问
            int y { get; set; }//定义属性成员y,他含有读写的抽象访问
        }
        class Point:IPoint
        {
            //定义俩个类内部访问的私有成员变量
            private int px;
            private int py;

            //构造函数实现类初始化,为私有变量赋值
            public Point (int x,int y)
            {
                px = x;
                py = y;

            }

            //接口属性x实现
            public int x
            {
                get { return px; }//实现读访问
                set { px = value; }//实现写访问
            }
            //接口属性y实现
            public int y
            {
                get { return py; }//实现读访问
                set { py = value; }//实现写访问
            }

        }


    }
}

运行结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值