首页 > 编程语言 >C#在接口中定义事件

C#在接口中定义事件

时间:2024-07-05 08:59:56浏览次数:15  
标签:定义 C# shape 接口 event Shape public MyEventArgs ShapeChanged

定义接口中事件和接口参数

namespace ImplementInterfaceEvents  
{  
    public interface IDrawingObject  
    {  
        event EventHandler ShapeChanged;  
    }  
    public class MyEventArgs : EventArgs
    {  
        // class members  
    }  
    public class Shape : IDrawingObject  
    {  
        public event EventHandler ShapeChanged;  
        void ChangeShape()  
        {  
            // Do something here before the event…  

            OnShapeChanged(new MyEventArgs(/*arguments*/));  

            // or do something here after the event.
        }  
        protected virtual void OnShapeChanged(MyEventArgs e)  
        {  
            ShapeChanged?.Invoke(this, e);  
        }  
    }  
}

订阅实现:

private Shape shape;
public Form1()
{
      InitializeComponent();
      shape = new Shape();
      shape.ShapeChanged += Shape_ShapeChanged;
}

private void Shape_ShapeChanged(object sender, EventArgs e)
{
      MessageBox.Show((e as MyEventArgs).Name);
}

//某个按钮事件里启动
private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
      shape.ChangeShape();
}

 

标签:定义,C#,shape,接口,event,Shape,public,MyEventArgs,ShapeChanged
From: https://www.cnblogs.com/east115/p/18285033

相关文章

  • Microsoft SQL Server 2012 中常用的 Transact-SQL 命令示例,涵盖了数据库管理和查询操
    MicrosoftSQLServer2012中常用的Transact-SQL命令示例,涵盖了数据库管理和查询操作:创建数据库sqlCopyCodeCREATEDATABASEYourDatabaseName;删除数据库sqlCopyCodeDROPDATABASEYourDatabaseName;创建表sqlCopyCodeCREATETABLEEmployees(EmployeeIDIN......
  • 创建数据库时排序规则utf8_general_ci与utf8_bin的区别
    在MySQL数据库中,字符集(如utf8)定义了字符如何存储,而排序规则(Collation)则定义了字符如何比较、排序和区分大小写。utf8_general_ci和utf8_bin是两种常用的UTF-8字符集下的排序规则,它们之间的主要区别如下:utf8_general_ci全称:case-insensitive,意为“不区分大小写”。特点:在比较......
  • 在 Microsoft SQL Server 2012 中,可以使用 sqlcmd 命令行工具来执行 Transact-SQL 脚
    sqlcmd实用工具-SQLServer|MicrosoftLearn在MicrosoftSQLServer2012中,可以使用sqlcmd命令行工具来执行Transact-SQL脚本和命令。这个工具提供了一种在命令行下管理和操作SQLServer的便捷方式。以下是一些sqlcmd命令的实例用法:连接到SQLServer实例bashC......
  • Linux C系列学习笔记_第四集
    局部变量和全局变量可以重名,作用域遵循就近原则#include<stdio.h>inta=10;//全局变量avoidfun(){printf("1.%d\n",a);inta=1;//a=1;printf("2.%d\n",a);}intmain(){inta=8;......
  • 【国赛赛题详解】2024年数学建模国赛ABCDEF题(点个关注,后续会更新)
        您的点赞收藏是我继续更新的最大动力!一定要点击如下的蓝色字体链接,那是获取资料的入口!点击链接加入群聊【2024国赛资料合集】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=eQt5WRIvc5-fogZRrrahAhbqDa2nKfW8&authKey=%2BqQfThTxNnhw5LGJFRIcneF8JXBj1ufd2K01UpKPrpcg......
  • 浅谈一下Mybatis当中插入主键返回的两个属性(useGeneratedKeys,selectKey)
    useGeneratedKeys和selectKey的区别今天遇见两个Mybatis当中很有像似点的属性,仔细研究了会.发现还是有带你不同.useGenerateKeys其值为true和false,表明是否将插入生成的主键返回到参数当中.useGeneratedKey属性会自动根据驱动生成对应SQL语句useGeneratedKey只支持“......
  • 玩玩快速冥(LeetCode50题与70题以及联系斐波那契)
    一.算法快速幂今天刷到两个题,比较有意思,还是记录一下.先来讲讲50题.LeetCode50(Pow(x,n))实现pow(x,n),即计算x的整数n次幂函数(即,xn)。这道题一看很平常啊,不就一直乘嘛,循环走一次就够了.但是很抱歉,单纯的想法终究迎来了超时.而且还是个中等的题目,意识到没......
  • 【C++学习笔记 8】C++中的析构函数
    构造函数一般用于创建实例或初始化,而析构(destructor)函数则是在销毁一个对象时使用的。析构函数可以用在释放任何内容或需要清理内存空间的场景。举个例子#include<iostream>classEntity{public: floatX,Y; Entity() { X=0.0f; Y=0.0f; std::cout<<......
  • 搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列
    搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列vulfocus简介vulfocus,作为一款前沿的漏洞集成平台,它巧妙地将多种最新的CVE漏洞环境封装于Docker容器之中,便于部署与操作,成为提升安全实战技能的理想靶场。用户既可选择在本地VMware环境中亲手搭建,享受从零到一的......
  • 刷题Phuck2--data协议差异
    刷题Phuck2使用arjun扫出hl参数,获取到源码​​源码:<?phpstream_wrapper_unregister('php');if(isset($_GET['hl']))highlight_file(__FILE__);$mkdir=function($dir){system('mkdir--'.escapeshellarg($dir));};......