为何不能在子类或外部发布C#事件

背景

一个朋友问了一个问题:“为什么不能在子类或外部发布C#事件?”,我说我不知道,要看看生产的IL代码,下面我们看看。

测试代码

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

namespace EventStudy
{
    class Program
    {
        static void Main(string[] args)
        {
        }
    }

    class Base
    {
        private Action _testEventB;

        public event Action TestEventA;

        public event Action TestEventB
        {
            add
            {
                _testEventB += value;
            }
            remove
            {
                _testEventB -= value;
            }
        }

        protected void OnTestEventA()
        {
            var testEventA = this.TestEventA;

            testEventA();
        }

        protected void OnTestEventB()
        {
            var testEventB = _testEventB;

            testEventB();
        }
    }

    class Child : Base
    {
        public void Do()
        {
            //this.TestEventA();不能这样访问
        }
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c#
, action
, using
, system
, 子类
void
父类不能替代子类、c 子类调用父类方法、c 父类转子类、c 子类构造函数、c 子类,以便于您获取更多的相关知识。

时间: 2025-01-02 08:18:13

为何不能在子类或外部发布C#事件的相关文章

微信 全网发布,事件消息失败?

问题描述 微信 全网发布,事件消息失败? 一直申请不成功,然后我查了下是由于,在请求https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=****' 这个接口的时候的问题,然后通过微信传过来的pre_auth_code,不能换取微信的access_token , 现在还是一致提示这个错误,我该怎么办? {"errcode":61003,"errmsg":&q

Network Simulator 3.12.1发布 离散事件仿真器

Network Simulator简称NS,是一个离散事件仿真器,主要用于http://www.aliyun.com/zixun/aggregation/8976.html">网络研究.它通过有线和无线(本地及卫星)网络,大量支持TCP仿真.路由和多播协议,还包括一个可选的网络动画. Network Simulator 3.12.1该版本SpectrumChannel模型现在支持单频传播损耗模型,属性系统扩展存储在地图容器中的对象,除了向量容器.支持IPv4分片已添加.多个错误已修复. 软

nield 0.21发布 网络接口事件日志守护进程

NIELD(Network Interface Events Logging Daemon)是一个网络接口事件日志守护进程,通过netlink socket,从内核接收信息,并产生相关的链接状态.相邻5603.html">缓存(ARP,NDP).IP地址(IPv4,http://www.aliyun.com/zixun/aggregation/9485.html">IPv6).路由和FIB日志规则. nield 0.21该版本增加了支持gretap接口和轻微的错误修正. 软

一个usercontrol如何能从这个userctrl上向外部发出一个事件

问题描述 定义一个usercontrol如果上面放一个button控件,如何能在使用这个usercontrol的窗口上捕捉到button被点击的事件呢??以前使用pb等语言有类似功能,不知怎么实现 解决方案 解决方案二:(1)在自定义控件中添加自定义事件publiceventEventHandlerButtonClick=null; (2)在控件构造函数中添加button.click事件声明publicUserControlButton(){InitializeComponent();butto

Spring的容器内部事件发布

文/杜琪(简书作者) 原文链接:http://www.jianshu.com/p/4f0ad3bb98f0 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". 自定义事件机制 给出自定义事件类型在某些应用场景下,我们希望关注特定功能的执行情况,这种功能的开始或者结束或者异常都可以看做一个事件,因此需要定义自己的事件类型. package com.javadu.event; import java.util.EventObject; public class MethodEx

红帽发布企业虚拟化3.6版 大幅降低VMware迁移成本

近日,红帽公司推出红帽企业虚拟化3.6版本.红帽基于KVM的虚拟化解决方案最新版本能够为高密度Linux工作负载提供增强的性能.扩展性以及安全性. 此外,由于无需购买第三方迁移工具,该版本还能更新用户体验和管理工具,从而帮助降低VMware迁移成本,同时缩短迁移时间.如何降低专用虚拟化解决方案成本并减少设备扩展已经成为红帽企业虚拟化解决方案需要应对的一个常见客户挑战问题. 红帽企业虚拟化针对大型计算环境而定制,例如SAP或Oracle部署环境以及计算和图形密集型工作站.数据显示,它比SPECvi

《Linux运维趋势》2012年12月号发布

又到了一周新闻回顾的时候,很高兴和大家相约于此,畅谈上周的新鲜趣事.在短短的几天里,却经历了平安夜与圣诞节这两个重要的日子.亲爱的您有没有吃甜甜的苹果,有没有收到圣诞老人的礼物?有没有许下美好的心愿?在这个满载祝福的日子里,我们也要给大家传送一个好消息,那就是让亲们翘首以盼的<Linux运维趋势>2012年12月号发布啦!赶紧去看看有没有适合你的菜.好了,下面让我们一起来重温一下上周的精彩内容吧! 恶搞必备 炫酷Win 8十大令人抓狂恶作剧 元旦就要到了,劳累了一年的你们是否感到身心疲惫呢?其

PHPCMS 2008正式内测版本未能及时发布导致大量用户不满

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 由于phpcms 2008 正式内测版本未能在昨天准时发布,导致很多用户不满! 大量用户在phpcms论坛上发布大量宣泄的帖子,一示抗议.虽然phpcms这几年里积累了大量的用户群体,由于今天的事件,加上前几次的不能如期发布的事件,导致大量用户的流失,它的用户群体越来越少.这也见证了自phpcms被酷六收买以后的不被重视! 这次的事件,在ph

西门子发布中文版漏洞提示 比国外晚13天

近日,记者对西门子工业控制系统存在漏洞的报道引发了广泛关注,西门子(中国)会对中国使用者提供一些安全警示或者其他相关措施吗?在记者发出问题数天后,西门子(中国)昨日(6月9日) 终于给出了回复.西门子(中国)媒体负责人段伟表示,西门子存在漏洞的相关产品说明的中文版本已经放在西门子(中国) 工业自动化与驱动计划网站上,西门子很多使用者都会浏览这个网站,应该可以看到相关信息.据西门子 (中国)官方网站资料,漏洞产品S7-1200的固件更新将在6月提供.固件更新将会提供弥补措施,此固件针对重放攻击加强