protected override void WriteLambda(LambdaExpression expr)
        {
            Write("(");
            WriteNodes("Parameters", expr.Parameters, false, ", ", true);
            Write(") => ");

            if (CanInline(expr.Body))
            {
                WriteNode("Body", expr.Body);
                return;
            }

            Write("{");
            Indent();
            WriteEOL();

            CSharpMultilineBlockTypes blockType = CSharpMultilineBlockTypes.Block;

            if (expr.Body.Type != typeof(void))
            {
                if (expr.Body is BlockExpression bexpr && bexpr.HasMultipleLines())
                {
                    blockType = CSharpMultilineBlockTypes.Return;
                }
                else
                {
                    Write("return ");
                }
            }
示例#2
0
 internal static CSharpBlockMetadata CreateMetadata(CSharpMultilineBlockTypes blockType = Inline,
                                                    bool parentIsBlock = false)
 {
     return(new CSharpBlockMetadata
     {
         BlockType = blockType,
         ParentIsBlock = parentIsBlock
     });
 }
示例#3
0
 internal void Deconstruct(out CSharpMultilineBlockTypes blockType, out bool parentIsBlock)
 {
     blockType     = BlockType;
     parentIsBlock = ParentIsBlock;
 }