2015-12-04 3 views
0
public static Expression<Func<int, int, int>> CreateExpressionTreeLambdaExpression() 
{ 
    return (x, y) => x * y; 
} 

Так что я понимаю, что если бы я захотел протестировать этот метод, я мог бы сделать так, что оценивает значение true.Я не понимаю это дерево выражений

[TestMethod] 
public void TestLambdaExpressions_ExpressionTreeLambdaExpression() 
{ 
    var expression = MultiplyDelegate.CreateExpressionTreeLambdaExpression(); 
    var function = expression.Compile(); 
    Assert.AreEqual(6, function(2, 3)); 
} 

То, что я, кажется, не понимает, это три int внутри выражения. Где используется третий тн? Это какая-то ссылка на себя?

+3

Вы прочитали документацию для ['Func '] (https://msdn.microsoft.com/en-us/library/bb534647 (v = vs.110) .aspx)? –

+0

Спасибо, Джон, нет. Я замалчивал эту часть MSDN https://msdn.microsoft.com/en-us/library/bb397951.aspx. Ваша предлагаемая ссылка четко объясняет, что я пропал без вести, а также ответ Яна ниже. Еще раз спасибо. –

ответ

5

Два параметра: int s, а результат - int. Это составляет три int с.

Смежные вопросы