VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > C#教程 >
  • C# 两个类间传递消息

运行环境:Window10,.Net7.0; 编者:乌龙哈里 2023-01-13


经常碰到两个控件需要相互传递消息,这时候需要用到事件。比如现有两个类如下:

复制代码
class AA
{
    private string Text = "AA";

    public void SetText(string s)
    {
        Text = s;
    }
    public void Show()
    {
        Console.WriteLine(Text);
    }
}

class BB
{
    private string Text = "BB";
    public void OnClick()
    {

    }
}
复制代码

我们需要 BB.OnClick() 后把 AA 的 Text 字段内容变成 BB.Text 的内容。这时候需要事件。事件按我的理解就是把 AA 的一个方法弄到 BB 内执行。在本文中就是 BB 也能执行 AA.SetText(string s) 这个方法。
在BB类内改造步骤:
1、根据 AA类的方法 void SetText(string s) 在 BB类 中声明一个代理 public delegate void SetValue(string s);
2、再把代理声明成事件 public event SetValue SetValueEvent;
3、最后,在 BB 类的 OnClick() 方法中运行事件。
改完的 BB 类如下:

复制代码
class BB
{
    private string Text = "BB";

    public delegate void SetValue(string s);
    public event SetValue? SetValueEvent;

    public void OnClick()
    {
        if (SetValueEvent != null)
        {
            SetValueEvent(Text);
        }
    }
}
复制代码

 


整体运行如下:

复制代码
var aa = new AA();
var bb = new BB();

aa.Show();//=>输出:AA
//把 BB 的事件绑定到 AA 的 SetText 方法
bb.SetValueEvent += aa.SetText;

//运行 BB 调用事件的方法 OnClick()
bb.OnClick();

aa.Show();//=>输出:BB。aa.Text 的内容已经改变成 BB 了
复制代码

出处:https://www.cnblogs.com/leemano/p/17050266.html


相关教程