using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace _05委托
{
//声明一个委托
public delegate string DelProStr(string str);//既可以有参数,也可以有返回值
class Program
{
static void Main(string[] args)
{
//1、Test为什么可以作为参数传递
//2、Test的参数为什么必须只能是object类型
//Thread th = new Thread(Test);//委托
string[] names = { "abCcDE", "FghIJkl", "mNOpqRST", "uvWXYz" };
//创建了一个委托对象
//在这new或者不new委托对象,编译的时候依然会new一个委托对象
DelProStr del = SToUpper;//函数可以直接赋值给一个委托
ProcessStr(names,del);
//for (int i = 0; i < names.Length; i++)
//{
// names[i] = del(names[i]);
//}
////ProcessStr(names, SSYH);
//foreach (string item in names)
//{
// Console.WriteLine(item);
//}
Console.ReadKey();
//1、统一 转成大写
//2、统一的 转成小写
//3、加双引号
}
static void ProcessStr(string[] names, DelProStr del)
{
for (int i = 0; i < names.Length; i++)
{
names[i] = del(names[i]);
//names[i]=SToUpper(names[i]);
}
}
static string SToUpper(string name)
{
return name.ToUpper();
}
static string SToLower(string name)
{
return name.ToLower();
}
static string SSYH(string name)
{
return "\"" + name + "\"";
}
static void StrToUpper(string[] names)
{
for (int i = 0; i < names.Length; i++)
{
names[i] = names[i].ToUpper();
}
}
static void StrToLower(string[] names)
{
for (int i = 0; i < names.Length; i++)
{
names[i] = names[i].ToLower();
}
}
static void StrSYH(string[] names)
{
for (int i = 0; i < names.Length; i++)
{
names[i] = "\"" + names[i] + "\"";
}
}
}
}