--学习委托
namespace ConsoleApplication1
{
//声明委托类型
//委托返回类型为string
//委托参数类型为string
//委托返回类型及参数类型要与委托调用的方法相匹配,即与方法返回类型与参数类型匹配
public delegate string dgt_typ(string str);
public class Testdelegate
{
public static string Replacespacestr(string str)
{
string temp="";
char[] c1 = str.ToCharArray();
foreach(char x in c1)
{
if (x!=' ')
{
temp+=x;
}
}
return temp;
}
public static string Reversestr(string str)
{
string temp = "";
for (int i = str.Length-1; i >= 0;i-- )
{
temp += str[i];
}
return temp;
}
}
}
class Program
{
static void Main(string[] args)
{
//定义一个委托类型的变量,在构造函数里面调用委托要调用的方法,且方法不用带括号()
dgt_typ mydelegate = new dgt_typ(Testdelegate.Replacespacestr);
//通过上述的委托类型变量来真正调用方法,作具体的工作,前面的声明委托类型及定义委托类型变量全是准备工作
//this is a big one对应委托调用方法的方法参数的具体值
string mystr=mydelegate("this is a big one");
Console.WriteLine(mystr);
Console.ReadKey();
mydelegate = Testdelegate.Reversestr;
string rev=mydelegate(mystr);
Console.WriteLine(rev);
Console.ReadKey();
}
}