Expression<br>>とFunc
5460 ワード
1.Expressionは式です
https://msdn.microsoft.com/zh-cn/library/system.linq.expressions.expression(v=vs.100).aspx
https://msdn.microsoft.com/zh-cn/library/bb335710(v=vs.100).aspx
2.Func依頼
パラメータを1つ持ってTResultパラメータで指定したタイプ値を返す方法をカプセル化します.public delegate TResult Func(T arg)タイプパラメータin Tこのパッケージングを依頼する方法のパラメータタイプ.このタイプのパラメータは逆です.すなわち、指定したタイプまたは派生度の低いタイプを使用できます.コヒーレントおよびインバータの詳細については、汎用のコヒーレントおよびインバータを参照してください.out TResultこのパッケージングを依頼するメソッドの戻り値タイプ.このタイプのパラメータはコヒーレントです.すなわち、指定したタイプまたは派生度の高いタイプを使用できます.コヒーレントおよびインバータの詳細については、汎用のコヒーレントおよびインバータを参照してください.パラメータargタイプ:Tこのパッケージングを依頼するメソッドのパラメータ.戻り値タイプ:TResultこのパッケージングを依頼するメソッドの戻り値.
ソース:
http://blog.csdn.net/shuyizhi/article/details/6598013
// LambdaExpression
Expression<Func<int, int, int, int>> expr = (x, y, z) => (x + y) / z;
Console.WriteLine(expr.Compile()(1, 2, 3));
https://msdn.microsoft.com/zh-cn/library/system.linq.expressions.expression(v=vs.100).aspx
https://msdn.microsoft.com/zh-cn/library/bb335710(v=vs.100).aspx
2.Func
パラメータを1つ持ってTResultパラメータで指定したタイプ値を返す方法をカプセル化します.public delegate TResult Func
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());
ソース:
http://blog.csdn.net/shuyizhi/article/details/6598013