委托传入的是方法,只写方法名。通俗的讲,可以把委托看成来执行方法(函数)的一个东西。
,参数个数、类型、顺序完全一致,并且返回值必须一致。
实例化委托就是将其指向某个方法,即调用委托的构造函数,并将相关联的方法作为参数传递。
如果委托类型是void的,传入的方法应该也是void的
using System;
delegate int Operand(int a, int b); //第一步:委托声明
class Class1
{
static void Main(string[]args)
{
Class1 c1 = new Class1();
Operand ope = new Operand(c1.Add);
//委托实例化,注意参数是要使用的参数名,且不带括号
Console.WriteLine(ope(10, 20)); //委托调用,调用委托的方法用委托的对象加参数
Console.ReadLine();
}
//定义一个方法,求两个加数的和
private int Add(int num1, int num2)
{
return (num1 + num2);
}
关于委托传递两个值的。
form1
string sdt,edt;
private void btnOK(object sender,EventArgs args)
{
form2 fr2=new form2();
fr2.GT=setTime;
fr2.ShowDialog();
lbl1.text=sdt;
lbl2.text=edt;
}
private void setTime(string _sdt,string _edt)
{
sdt=_sdt;
edt=_edt;
}
form2
public delegate void getTime(string sdt,string edt);//声明委托
public getTime GT;//声明委托成员
private void btnSet(object sender,EventArgs e)
{
GT(txtBox1.text,txtBox2.text);//获取文本框里面的两个字符串
this.Close();
}
,参数个数、类型、顺序完全一致,并且返回值必须一致。
实例化委托就是将其指向某个方法,即调用委托的构造函数,并将相关联的方法作为参数传递。
如果委托类型是void的,传入的方法应该也是void的
using System;
delegate int Operand(int a, int b); //第一步:委托声明
class Class1
{
static void Main(string[]args)
{
Class1 c1 = new Class1();
Operand ope = new Operand(c1.Add);
//委托实例化,注意参数是要使用的参数名,且不带括号
Console.WriteLine(ope(10, 20)); //委托调用,调用委托的方法用委托的对象加参数
Console.ReadLine();
}
//定义一个方法,求两个加数的和
private int Add(int num1, int num2)
{
return (num1 + num2);
}
关于委托传递两个值的。
form1
string sdt,edt;
private void btnOK(object sender,EventArgs args)
{
form2 fr2=new form2();
fr2.GT=setTime;
fr2.ShowDialog();
lbl1.text=sdt;
lbl2.text=edt;
}
private void setTime(string _sdt,string _edt)
{
sdt=_sdt;
edt=_edt;
}
form2
public delegate void getTime(string sdt,string edt);//声明委托
public getTime GT;//声明委托成员
private void btnSet(object sender,EventArgs e)
{
GT(txtBox1.text,txtBox2.text);//获取文本框里面的两个字符串
this.Close();
}