【C#】delegate委托的定义和使用方法

来源:互联网 发布:必修三数学算法初步 编辑:程序博客网 时间:2024/05/21 10:02
using System;namespace delegate委托的定义和使用方法{class MainClass{//【1】 定义一个返回值是string,无参数的委托类型public delegate string GetAstring ();// ------------------------------------------------------------------------// 【2】定义一个无参数,无返回值的委托public delegate void  WriteString ();// 【2】把委托类型作为方法的参数static void Write (WriteString printFunction){// 调用委托中所有的方法printFunction ();}static void WriteTest1 (){Console.WriteLine ("可以把方法1作为参数传递");}static void WriteTest2 (){Console.WriteLine ("可以把方法2作为参数传递");}// ------------------------------------------------------------------------public static void Main (string[] args){//【1】--------------------委托变量赋值的两种方式------------------------int age = 18;//【1】-----------------------第一种赋值方式----------------------------// getString指向age中的ToString方法// new的时候括号里必须带有一个,无参数,返回值是string类型的方法// 根据上面的delegate类型可判断参数方法的类型GetAstring getString = new GetAstring (age.ToString);// +=:表示这个委托里又追加了一个方法,委托了2个ToString方法,还可以追加更多getString += age.ToString;// 通过委托的实例去调用委托里的方法string result = getString ();Console.WriteLine ("result: " + result);//【1】-----------------------第二种赋值方式----------------------------GetAstring getString2 = age.ToString;string result2 = getString2 ();Console.WriteLine ("restlt2: " + result2);//【2】---------------------------------------------------------------WriteString test = WriteTest1;test += WriteTest2;test += WriteTest2;/*  输出结果可以把方法1作为参数传递可以把方法2作为参数传递可以把方法2作为参数传递*/Write (test);}}}

0 0
原创粉丝点击