1.什么时候用委托: 当给一个方法传递的参数是方法,而不是数据的时候,要使用委托。如:多线程、事件、运行时才能确认的应用程序等。 2.如何使用委托: 定义委托:(与类相同)delegate string GetAString(); 实例化:GetAString testString=new GetAString("test".ToString()); 运行: Console.Write(testString()); 类图: System.Delegate | System.MulticastDelegate | GetAString 3.如何理解委托: 可把委托看做给方法签名指定的名称。如: delegate string GetAString(); 返回类型为string,无参数的方法的签名的名字为GetAString. 4.委托的作用: 类似于c/c++的回调函数(函数指针).但c中这个指针是什么(只是个存储地址),参数及返回类型是什么都是未知,类型不安全。而委托是类型安全的,因为它规定了方法的签名。 5.多播委托: 包含多个方法的委托,叫多播委托。返回类型为void,c#编译器遇到返回类型为void的委托,即默认为多播委托。 如:delegate void GetAString(); GetAString testString=delegate() { Console.WriteLine("a"); } testString+=delegate() {
|