当前位置: 代码迷 >> 综合 >> 委托和事件(6)——委托使用案例:字符串数组处理
  详细解决方案

委托和事件(6)——委托使用案例:字符串数组处理

热度:61   发布时间:2023-10-01 22:20:09.0
delegate string ProcessDelegate(string s); static void ProcessArray(ProcessDelegate p){string[] values = new string[] { "aB","Cd"};for (int i = 0; i < values.Length; i++){values[i] = p(values[i]);}Console.WriteLine("处理后");foreach (string s in values){Console.WriteLine(s);}}

编写函数,大写、小写、加引号。

进一步体会:和直接调用函数的区别:用委托就可以指向任意的函数,哪怕是之前没定义的都可以,而不使用受限于那几种

定义委托的时候,一般是跟类平行的(并列的)。也可以定义在类里面,这就类似于内部类了

这个例子的委托代码:

    class Program{       static void Main(string[] args){string[] values = new string[] { "aB", "Cd" };//for (int i = 0; i < values.Length; i++)//{//    values[i] = values[i].ToLower();//}//for (int i = 0; i < values.Length; i++)//{//    values[i] = values[i].ToUpper();//}//=============以下是委托==============//Process(values, ToUpper);Process(values, FKH);//不用懂for循环可以对字符串数组进行处理Console.WriteLine(string.Join(",", values));Console.ReadKey();}static void Process(string[] values,ProcessStringDelegate p){for (int i = 0; i < values.Length; i++){values[i] = p(values[i]);}}static string FKH(string s){return "[" + s + "]";}static string ToUpper(string s){return s.ToUpper();}}delegate string ProcessStringDelegate(string s);

 

  相关解决方案