读书人

不同类 值传递与值接收解决思路

发布时间: 2012-01-26 19:40:46 作者: rapoo

不同类 值传递与值接收
类y (比如说是Form 窗体),类x(某实现类)
类x 在某个逻辑需要传递消息给类y,但是类x没有声明 类y的引用.当x需要传递消息给y时 y要立刻做出反应.

y 里面不想有 Timer 类似的循环监听

能否给个良好的架构!!!!



[解决办法]

C# code
delegate\event的方法:类X:using System;using System.Collections.Generic;using System.Windows.Forms;using System.Text;namespace WindowsFormsApplication1{    public class ClassX    {        public delegate void MessageDelegate(string strMsg);        public event MessageDelegate MessageEvent;        public void Test()        {            if (MessageEvent != null)            {                MessageEvent("类X for循环开始.");            }            for (int i = 0; i < 100000;i++ )            {                Application.DoEvents();            }            if (MessageEvent != null)            {                MessageEvent("类X for循环结束.");            }        }    }}Form:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms; namespace WindowsFormsApplication1{    public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();        }        private ClassX cls = new ClassX();        private void Form1_Load(object sender, EventArgs e)        {            cls.MessageEvent += MessageFunction;        }        private void MessageFunction(string strMsg)        {            MessageBox.Show(strMsg);        }        private void button1_Click(object sender, EventArgs e)        {            cls.Test();        }    }} 

读书人网 >C#

热点推荐