Пример #1
0
        public virtual void Write(ICodeFragment fragment, IOutputCache output)
        {
            LambdaTemplate template = (LambdaTemplate)fragment;

            output.Add("(");
            if (template.Parameters != null)
            {
                output.Add(template.Parameters, ", ");
            }
            else if (template.ParameterNames?.Count == 1)
            {
                output.Add(template.ParameterNames[0]);
            }
            else if (template.ParameterNames?.Count > 1)
            {
                output.Add(string.Join(", ", template.ParameterNames));
            }
            output.Add(")")
            .Add(" =>");
            if (template.Code is MultilineCodeFragment)
            {
                output.StartBlock();
            }
            else
            {
                output.Add(" ");
            }
            output.Add(template.Code);
            if (template.Code is MultilineCodeFragment)
            {
                output.EndBlock(this.options.Formatting.StartBlockInNewLine);
            }
        }
Пример #2
0
        public void LambdaMultiline()
        {
            LambdaTemplate template = new LambdaTemplate("parameter", Code.Multiline().AddLine(Code.Local("parameter").Method("test").Close()));
            LambdaWriter   writer   = new LambdaWriter();

            writer.Write(template, this.output);
            Assert.AreEqual("parameter =>\r\n{\r\n    parameter.test();\r\n}", this.output.ToString());
        }
Пример #3
0
        public void LambdaWriter()
        {
            LambdaTemplate template = new LambdaTemplate("parameter", Code.Local("parameter").Method("test"));
            LambdaWriter   writer   = new LambdaWriter();

            writer.Write(template, this.output);
            Assert.AreEqual("parameter => parameter.test()", this.output.ToString());
        }
Пример #4
0
        public virtual void Write(ICodeFragment fragment, IOutputCache output)
        {
            LambdaTemplate template = (LambdaTemplate)fragment;

            output.Add(template.ParameterName ?? "()")
            .Add(" =>");
            if (template.Code is MultilineCodeFragment)
            {
                output.StartBlock();
            }
            else
            {
                output.Add(" ");
            }
            output.Add(template.Code);
            if (template.Code is MultilineCodeFragment)
            {
                output.EndBlock(output.Language.Formatting.StartBlockInNewLine);
            }
        }