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")); //通过委托变量调用函数
}