全球代表订阅

时间:2016-11-03 12:19:55

标签: c# winforms delegates

我有多个类需要订阅委托。 怎么可能?如果我在mainForm中声明委托是否编码良好?

示例代码:

internal delegate void DEL_SetSingleVal(Single value);

public partial class Form1 : Form
{
    Single Data;
    ClasswithDel ClassDelegate;
    TryToAccess AccessDelegate;
    public Form1()
    {
        InitializeComponent();
        ClassDelegate = new ClasswithDel();
        AccessDelegate = new TryToAccess();
        ClassDelegate.SetValCbk += new DEL_SetSingleVal(SetValCbkFn);
        ClassDelegate.SetValCbk += new DEL_SetSingleVal(AccessDelegate.SetValCbkObj2Fn);
    }
    internal void SetValCbkFn(Single value)
    {
        Data = value;
    }
    private void SetValueLabel(String value)
    {
        label1.Text = value;
    }
    private void button1_Click(object sender, EventArgs e)
    {
        ClassDelegate.SetValue(Convert.ToSingle(textBox1.Text));
    }
}
public class TryToAccess
{
    private Single Data2;
    internal void SetValCbkObj2Fn(Single value)
    {
        Data2 = value;//value come from From1
    }
}
public class ClasswithDel
{
    internal DEL_SetSingleVal SetValCbk;
    public void SetValue(Single valuesent)//value to dispatch to Form1 and TryToAccess
    {
        SetValCbk(valuesent);
    }
}

这看起来不错吗?谢谢你的帮助!

0 个答案:

没有答案