public virtual T_Type RenderView(StringBuilder builder, List <string> call_stack, StringBuilder paras, AssignOperatorInfo?op, StringBuilder opValue, PostfixPartType?postfixPartType, StringBuilder func_paras, StringBuilder index_para) { //if(call_stack == null) var member = call_stack[0]; AssignOperatorInfo?op2 = null; StringBuilder opValue2 = null; if (call_stack.Count == 1) { op2 = op; opValue2 = opValue; } T_Type nextType = null; if (!this.IsInstance) { foreach (var f in this.Static_Fields) { if (f.Name == member) { this.RenderView(builder, f, op2, opValue2); nextType = f.Type; break; } } if (nextType == null) { foreach (var m in this.Static_Methods) { if (m.Name == member) { this.RenderView(builder, m, paras); nextType = m.Type; break; } } } } else { foreach (var f in this.Fields) { if (f.Name == member) { this.RenderView(builder, f, op2, opValue2); nextType = f.Type; break; } } if (nextType == null) { foreach (var m in this.Methods) { if (m.Name == member) { this.RenderView(builder, m, paras); nextType = m.Type; break; } } } } if (call_stack.Count > 1) { //var call_stack2 = new List<string>(); //call_stack2.AddRange(call_stack); //call_stack2.RemoveAt(0); return(nextType.RenderView(builder, call_stack.SubList(1), paras, op, opValue, postfixPartType, func_paras, index_para)); } return(nextType); }