1.0
Func<string> Demo = () => {
return "Hello";
}; //这里相当于一个方法,这里是无参数,返回一个string类型
string demo= Demo();
2.0
Func<string,string> Demo = (str) => {
return str;
}; //这里相当于一个方法,这里可以传参数,可以传N个参数,返回一个string类型
string demo= Demo("Hellow");
++++++++++++++++++++++++++++++++++下面介绍另外一个写法++++++++++++
1.
Action<string> demo = (str) => {
button2.Text = str;
};
demo("Hello"); //返回类型和参数类型都为string
2.
Action<string,int> demo = (str,str1) => {
button2.Text = str+str1.Tostring();
};
demo("Hello",1); //参数为string,int。
++++++++++++++++++++++++++++++++++++委托作为方法进行传递(Func)+++++++++++++++++++++++
public string FunShow()
{
MessageBox.Show("我是一个Fun委托方法");
return 1+"";
}
public void GetSomething<T>(Func<string> fun, T str1)//T可以为DataTable,string,int,char等等类型
{
//string res = fun();//可以接受到执行方法的结果,即传入的Func的委托方法返回的string
//也可以访问 str1
MessageBox.Show(str1.ToString());
}
调用实例:
string strRes="";
Func<string> strFun = new Func<string>(FunShow);
GetSomething<string>(strFun,strRes);