加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c#类实例通信

发布时间:2020-12-15 08:31:54 所属栏目:百科 来源:网络整理
导读:如果你有同一个类的不同实例,例如’FootballTeam’,你想让这个FootballTeam类的另一个实例知道发生了什么,那么最好的方法是什么? 事件不会真正起作用我猜… 例如: FootballTeam A = new FootballTeam();FootballTeam B = new FootballTeam();// now A need
如果你有同一个类的不同实例,例如’FootballTeam’,你想让这个FootballTeam类的另一个实例知道发生了什么,那么最好的方法是什么?

事件不会真正起作用我猜…

例如:

FootballTeam A = new FootballTeam();
FootballTeam B = new FootballTeam();

// now A needs to let B know about it's manager change
// manager is a property inside this class...

解决方法

事件可能有效:
FootballTeam A = new FootballTeam();
FootballTeam B = new FootballTeam();
A.ManagerChanged += B.OnOtherManagerChanged;

事件的定义 – 当Football Manager的Manager属性更改值时,它会调用其OnManagerChanged方法:

class FootballTeam
{
    public event EventHandler ManagerChanged;

    protected virtual void OnManagerChanged(EventArgs e)
    {
        EventHandler handler = ManagerChanged;
        if (handler != null)
            handler(this,e);
    }

    public void OnOtherManagerChanged(object sender,EventArgs e)
    {
        FootballTeam otherTeam = (FootballTeam) sender;
        // A manager changed on a different FootballTeam instance
        //  ...do something here
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读