为了账号安全,请及时绑定邮箱和手机立即绑定

苦苦挣扎的C#事件示例

苦苦挣扎的C#事件示例

C#
侃侃无极 2021-04-09 14:15:25
我正在努力将一些Events实施到正在处理的代码中,而正在使用的教科书中提供的示例却无法编译(C#Player手册,第3版)。我一直在尝试弄清我对事件/事件处理程序等没有了解的内容,但毫无用处。我正在使用Microsoft Visual Studio(最新更新),这是我正在尝试进行的代码(我没有编写它-但是我认为弄清楚为什么它不起作用将对我有帮助。我遇到的其他事件问题)。namespace EventsPractice{    class Program    {        static void Main(string[] args)        {            Point point = new Point();            point.PointChanged += HandlePointChanged;        }    }    class Point    {        private double x;        private double y;        public double X        {            get { return x; }            set            {                x = value;                OnPointChanged();            }        }        public double Y        {            get { return y; }            set            {                y = value;                OnPointChanged();            }        }        public event EventHandler PointChanged;        public void OnPointChanged()        {            if (PointChanged != null)                PointChanged(this, EventArgs.Empty);        }        public void HandlePointChanged(object sender, EventArgs eventArgs)        {            // Do something Here        }    }}问题是在网上point.PointChanged += HandlePointChanged;我收到错误消息“名称HandlePointChanged在这种情况下不存在。”我缺少明显的东西吗?为什么不起作用?
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

HandlePointChanged在类中定义Point。您还需要在右侧引用它,因为您是从class引用它的Program

point.PointChanged += point.HandlePointChanged;

如@juharr所述,您需要引用功能的特定实例,因为它不是静态的。您可以通过使函数静态化来避免这种情况。


查看完整回答
反对 回复 2021-04-24
  • 2 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信