Пример #1
0
        public void DispatchBlock(Expression e)
        {
            var  be         = (BlockExpression)e;
            bool hasReturn  = (be.Type != typeof(void));
            var  statements = hasReturn ? be.Expressions.Take(be.Expressions.Count - 1) : be.Expressions;

            Sink("{ ");

            foreach (var v in be.Variables)
            {
                StatementDispatch(CSharpFriendlyTypeName.Get(v.Type), v, ExpressionType.Block);
            }

            foreach (var child in statements)
            {
                StatementDispatch(child, ExpressionType.Block);
            }

            if (hasReturn)
            {
                StatementDispatch("return", be.Result, ExpressionType.Block);
            }

            Sink("}");
        }
Пример #2
0
 public static string GetCSharpFriendlyTypeName(Type type)
 {
     return(CSharpFriendlyTypeName.Get(type));
 }