背景
一个朋友问了一个问题:“为什么不能在子类或外部发布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