目录
一、委托概念
1、使用委托可以提高代码的可扩展性
最优秀的项目是我写过的代码基本上不需要动,如果我需要追加新功能的话,只需要写新功能就可以了,原来的老功能
不需要动一行代码。 有优秀的可扩展性
2、委托的关键字 delegate
Greeting 怎么用委托来实现呢?
二、委托语法规范:
[访问修饰符] delegate 返回值 委托名称(参数1,参数2,参数3,...);
1、声明一个委托
public delegate void TestMuDelegte(string s); //声明一个委托
2、实例化一个委托
TestMuDelegte tes=new TestMuDelegte(方法名);
实例化委托的时候,需要将符合委托定义的方法当做参数传给委托,在该例中,应该传递一个返回值为void,参数
为string的方法名称。
委托是一个类型
3、调用委托
tes("....");
4、把委托当做参数传入方法,调用该方法
public static void GreetNew(string name, GreetDelegate getDel)
{
getDel(name);
}
GreetNew("黄渤", ShandongGreet);
eg:委托实现Greeting:
class Program
{
//1、声明委托:委托中 返回值:void 有一个string类型的参数
public delegate void GreetDelegate(string s);
//把委托当做参数传递
public static void GreetNew(string name, GreetDelegate getDel)
{
getDel(name);
}
static void Main(string[] args)
{
//2、实例化委托对象
GreetDelegate greet = new GreetDelegate(BeijingGreet);
//实例化委托的时候,需要将符合委托定义的方法当做参数传给委托
greet("大张伟");//3、调用委托
GreetNew("黄渤", ShandongGreet);//4、把委托当做参数传入方法,调用该方法
Console.Read();
}
public static void BeijingGreet(string name)
{
Console.WriteLine("你好!"+name);
}
public static void ShandongGreet(string name)
{
Console.WriteLine("你好!" + name);
}
}
//委托简写方式 省略掉new操作符
ComputeDelegate compDel2 = MultyMethod;
Console.WriteLine(compDel2(23, 6));
三、窗体间传值
1、使用静态变量传值
Form1--》Form2传值
1)创建一个类,在该类中创建静态变量,用于存储要传递的值
2)在New Form2对象之前,在Form1的B