public void ItShouldPossibleToInvokeStringFormat() { const string expected = @"public System.String Call(System.String par1, System.String par2) { System.String result; result = System.String.Format(""{0}-{1}"", par1, par2); return result; }"; var newExpression = Function.Create() .WithParameter <string>("par1") .WithParameter <string>("par2") .WithBody( CodeLine.CreateVariable <string>("result"), CodeLine.Assign(Operation.Variable("result"), StringOperation.Format( "{0}-{1}", Operation.Variable("par1"), Operation.Variable("par2"))) ) .Returns("result"); AssertString.AreEqual(expected, newExpression.ToString()); var lambda = newExpression.ToLambda <Func <string, string, string> >(); Assert.IsNotNull(lambda); var result = lambda("a", "b"); Assert.AreEqual("a-b", result); }