C#将方法作为参数传递(用委托接收方法)


1、声明委托

public delegate void DataCallBackEventHandler(string str);

2、按照委托结构(参数和返回值)写一个回调方法

public void DataCallBackEvent(string str)

{

    label1.Text = "委托传回的消息:" + str;

}

3、将方法作为参数进行传递

private void btnTestDelegate_Click(object sender, EventArgs e)

{

    Form3 frm3 = new Form3(DataCallBackEvent);  //函数名称

    frm3.Show();

}

4、构造函数中接收此方法

//声明委托用来接收方法

DataCallBackEventHandler _dataCallBackEvent;

public Form3(DataCallBackEventHandler dataCallBackEvent)   //函数参数类型是委托

{

    InitializeComponent();

    //用委托接收方法

    _dataCallBackEvent = dataCallBackEvent;

}

5、调用方法

//传回字符串+时间

if (_dataCallBackEvent!=null)

{

    _dataCallBackEvent(textBox1.Text+DateTime.Now.ToString("yyyy-dd-hh-mm.fff"));   //通过委托变量调用函数

}

 

 

posted @ 2020-02-28 20:00  清语堂  阅读(6679)  评论(0编辑  收藏  举报