//判断当前选中的是那种类型 string JudgeNowSelectObjType() { selectObjType = SelectObjType.NoUsedTemplate; if (selectedObjName.Length == 1) { if (HaveTheTemlate(selectedObjName[0])) { if (GameObject.Find(selectedObjName[0])) { selectObjType = SelectObjType.Instance; } else { selectObjType = SelectObjType.PreFab; } return(selectedObjName[0]); } return(""); } else { foreach (string name in selectedObjName) { if (HaveTheTemlate(name)) { selectObjType = SelectObjType.UsedTemplate; return(name); } } return(""); } }
/// <summary> /// Visits the new. /// </summary> /// <param name="node">The node.</param> /// <returns>An Expression.</returns> protected override Expression VisitNew(NewExpression node) { _selectObjType = SelectObjType.New; var list = new List <string>(); var parms = node.Arguments; var members = node.Members; for (int i = 0; i < parms.Count; i++) { var member = members[i]; list.Add($"{base.GetSql(parms[i])} as {member.Name}"); } sql = $"{string.Join(",", list)}"; SelectType = node.Type; return(node); }
/// <summary> /// Visits the new array. /// </summary> /// <param name="node">The node.</param> /// <returns>An Expression.</returns> protected override Expression VisitNewArray(NewArrayExpression node) { _selectObjType = SelectObjType.ArrayField; var list = new List <string>(); foreach (var item in node.Expressions) { var obj = base.GetSql(item); if (obj is not string) { throw new Exception("Select 表达式参数类型不正确,需要传入列名"); } list.Add(obj.ToString()); } sql = $"{string.Join(",", list)}"; return(node); }