/// <summary> /// 各种表达式 /// </summary> /// <param name="expr"></param> string ParseObjectCreateExpression(AstNode expr) { string newtype = ""; foreach (var v in expr.Children) { if (v is Comment) { Append(v.ToString().Replace("\r\n", "")); } else if (v is PrimitiveType) { newtype = Tools.getPrimitiveTypeName(v.ToString()); Append(newtype); } else if (v is MemberType) { newtype = getMemberTypeName(v.ToString()); Append(newtype); } else if (v is SimpleType) { newtype = getSimpleTypeName((v as SimpleType).Identifier); Append(newtype); } else if (v is CSharpTokenNode) { if (v.ToString() == "(")//param begin; { Append("("); } else if (v.ToString() == ")")//paramend; { Append(")"); } else if (v.ToString() == "new") { Append("new "); } else { Append(v.ToString()); } } else if (v is NewLineNode) { AppendLine(); } else if (v is BlockStatement) { ParseBlockStatement(v, null); } else if (v is IdentifierExpression) {//add param ParseIdentifierExpression(v as IdentifierExpression, null); } else { logger.LogError("not support ParseObjectCreateExpression element:" + v.GetType().Name + "|" + v.NodeType + "|" + v.StartLocation.Line); } } return newtype; }