您的位置:首页 > 其它

Func<T, TResult> 委托

2012-08-25 14:04 471 查看

Func<T, TResult> 委托

封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。

public delegate TResult Func<in T, out TResult>(T arg)

类型参数

in T

此委托封装的方法的参数类型。

该类型参数是逆变的。即可以使用指定的类型或派生程度更低的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。

out TResult

此委托封装的方法的返回值类型。

该类型参数是协变的。即可以使用指定的类型或派生程度更高的类型。有关协变和逆变的更多信息,请参见泛型中的协变和逆变。

参数

arg

类型:T

此委托封装的方法的参数。

返回值

类型:TResult

此委托封装的方法的返回值。

[csharp]
view plaincopyprint?

string mid = ",middle part,"; 

          ///匿名写法 
          Func<string,
string> anonDel = delegate(string param) 

          { 
              param += mid; 
              param += " And this was added to the string."; 

              return param; 

          }; 
          ///λ表达式写法 

          Func<string, string> lambda = param => 

              { 
                  param += mid; 
                  param += " And this was added to the string."; 

                  return param; 

              }; 
          ///λ表达式写法(整形) 
          Func<int,
int> lambdaint = paramint => 
              { 
                  paramint = 5; 
                  return paramint; 

              }; 
          ///λ表达式带有两个参数的写法 
          Func<int,
int, int> twoParams = (x, y) => 

              { 
                return  x*y; 

              }; 
          MessageBox.Show("匿名方法:"+anonDel("Start of string")); 

          MessageBox.Show("λ表达式写法:" + lambda("Lambda expression")); 

          MessageBox.Show("λ表达式写法(整形):" + lambdaint(4).ToString()); 

          MessageBox.Show("λ表达式带有两个参数:" + twoParams(10, 20).ToString()); 

string mid = ",middle part,";
///匿名写法
Func<string, string> anonDel = delegate(string param)
{
param += mid;
param += " And this was added to the string.";
return param;
};
///λ表达式写法
Func<string, string> lambda = param =>
{
param += mid;
param += " And this was added to the string.";
return param;
};
///λ表达式写法(整形)
Func<int, int> lambdaint = paramint =>
{
paramint = 5;
return paramint;
};
///λ表达式带有两个参数的写法
Func<int, int, int> twoParams = (x, y) =>
{
return  x*y;
};
MessageBox.Show("匿名方法:"+anonDel("Start of string"));
MessageBox.Show("λ表达式写法:" + lambda("Lambda expression"));
MessageBox.Show("λ表达式写法(整形):" + lambdaint(4).ToString());
MessageBox.Show("λ表达式带有两个参数:" + twoParams(10, 20).ToString());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string lambda