当你需要把一个方法传送给其他方法时,可以考虑使用委托。好像不是很好理解,也可以这样说,当你确定要处理一件事,但又不能确定处理方法时,可以考虑用委托。其实单独的说委托的应用好像有点牵强,委托更多的是在事件中的应用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 为什么要使用委托
{
public delegate string DelStr(string name);//委托的三步骤 红色标出
class Program
{
static void Main(string[] args)
{
string[] name = { "aBCdeFG", "HijkLMn", "OPqrst", "UvWxYz" };
// toupper(name);
// tolower (name);
// addstring(name);
// ProStr(name, delegate(string name1) { return name1.ToLower(); });//匿名函数:只能在程序中执行一次!
ProStr(name, (string name1) => { return name1.ToLower(); });//lamda表达式 => ,
// ProStr(name, (string name1) => { return name1.ToUpper(); });//全部转小写
//ProStr(name, (string name1) => { return "\"" + name1 + "\""; });//两边加引号“”
for (int i = 0; i < name.Length; i++)
{
Console.WriteLine(name[i]);
}
}
public static void ProStr(string[] name,DelStr del)
{
for (int i = 0; i < name.Length; i++)
{
name[i] = del(name[i]);
}
}
/* public static void toupper(string[] name)
{
for (int i = 0; i < name.Length; i++)
{ name[i] = name[i].ToUpper(); }
}
public static void tolower(string[] name)
{
for (int i = 0; i < name.Length; i++)
{ name[i] = name[i].ToLower(); }
}
public static void addstring(string[] name )
{
for (int i = 0; i < name.Length; i++)
{
name[i]="\""+name [i]+"\"";
}
}*/
}
}