自定义类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 委托实例
{
class MyClass
{
public void Change(string[] s, ChangeDelegate changeDelegate)//委托动态实现一个方法
{
for (int i = 0; i < s.Length; i++)
{
//这边不确定到时候传过来一个什么方法,使用委托动态实现,相当于一个方法的占位符
s[i] = changeDelegate(s[i]);
}
}
}
//传方法时传递一个有参数有返回值的方法
public delegate string ChangeDelegate(string s);
}
主类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 委托实例
{
class Program
{
static void Main(string[] args)
{
string[] s = new string[] { "yangdelong", "wanhaigou", "jierke", "goubao" };
MyClass mc = new MyClass();
mc.Change(s, ChangeS);
for (int i = 0; i < s.Length; i++)
{
Console.WriteLine(s[i]);
}
Console.ReadKey();
}
//这就是传过来的具体方法
static string ChangeS(string s)
{
return s.ToUpper();
}
}
}