При попытке запустите следующий код:
Expression<Func<string, string>> stringExpression = Expression.Lambda<Func<string, string>>(
Expression.Add(
stringParam,
Expression.Constant("A")
),
new List<ParameterExpression>() { stringParam }
);
string AB = stringExpression.Compile()("B");
Я получаю сообщение об ошибке, указанное в заголовке: «Бинарный оператор Add не определен для типов System.String и System.String». Так ли это на самом деле? Очевидно, в C # это работает. Выполняет ли строку s = "A" + "B"
в специальном синтаксическом сахаре C #, к которому компилятор выражений не имеет доступа?