【问题标题】:Not able to access event defined in a class无法访问类中定义的事件
【发布时间】:2022-12-08 03:14:24
【问题描述】:

我正在尝试订阅一个事件,但它在提到的行上显示错误。谁能告诉我代码中的问题是什么?

我是编程新手,所以请提供详细的答案。提前致谢

namespace Events
{
    delegate void MyEventHandler();

    internal class ArrayListExamplePublisher : ArrayList
    {
        public event MyEventHandler objMyEventHandler;

        void OnAdded()
        {
            if (objMyEventHandler != null)
            {
                objMyEventHandler();
            }
        }

        public override int Add(object? value)
        {
            OnAdded();
            return base.Add(value);
        }
    }

    public class ArrayListExample
    {
        static void Main()
        {
            ArrayList arrayList = new ArrayList();

            // Here I get an error
            arrayList.objMyEventHandler += () => Console.WriteLine("Object Added"); 
            
            arrayList.Add(1);
            arrayList.Add("4");
        }
    }
}

【问题讨论】:

    标签: c# asp.net-core .net-core


    【解决方案1】:

    您的 lambda 表达式必须与事件的委托类型相匹配。

    大多数事件都有两个参数,所以这应该可以工作:

    arrayList.objMyEventHandler += ( s, e ) => Console.WriteLine("Object Added"); 
    

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 1970-01-01
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2015-03-12
      • 1970-01-01
      相关资源
      最近更新 更多