public void InitByTaskType(string typeName) { taskTypeData = TaskTypeMgr.Ins.GetTaskTypeData_ByTypeName(typeName); if (typeName != curTaskData.strTaskTypeName) { //换了类型,需要重新初始化 ST_TaskArgumentData[] arrTmp = null; if (taskTypeData.arrArgument != null) { arrTmp = new ST_TaskArgumentData[taskTypeData.arrArgument.Length]; for (int i = 0; i < taskTypeData.arrArgument.Length; i++) { arrTmp[i] = new ST_TaskArgumentData() { strTag = taskTypeData.arrArgument[i].strArgumentName, eM_ArgumentType = taskTypeData.arrArgument[i].eM_ArgumentType, nArgumentNum = taskTypeData.arrArgument[i].nNum, listMember = new List <string>(), }; } } _curTaskData = new ST_TaskData() { strID = _curTaskData.strID, strTaskTypeName = typeName, arrArgumentData = arrTmp }; } view?.OnValueReset(curTaskData); }
/// <summary> /// 获取初始化的hashTable里的成员 /// </summary> /// <param name="argumentData"></param> /// <returns></returns> protected virtual object GetTaskInitHashTableMember(ST_TaskArgumentData argumentData) { if (argumentData.listMember == null || argumentData.listMember.Count == 0) { return(null); } object member = null; switch (argumentData.eM_ArgumentType) { case EM_ArgumentType.Int: { List <int> listTmp = new List <int>(); for (int i = 0; i < argumentData.listMember.Count; i++) { int num; if (int.TryParse(argumentData.listMember[i], out num)) { listTmp.Add(num); } else { listTmp.Add(default(int)); } } //只要一个参数的时候,不用列表类型 if (argumentData.nArgumentNum != 1) { member = listTmp; } else if (listTmp.Count > 0) { member = listTmp[0]; } } break; case EM_ArgumentType.Float: { List <float> listTmp = new List <float>(); for (int i = 0; i < argumentData.listMember.Count; i++) { float num; if (float.TryParse(argumentData.listMember[i], out num)) { listTmp.Add(num); } else { listTmp.Add(default(float)); } } //只要一个参数的时候,不用列表类型 if (argumentData.nArgumentNum != 1) { member = listTmp; } else if (listTmp.Count > 0) { member = listTmp[0]; } } break; case EM_ArgumentType.String: { List <string> listTmp = new List <string>(); for (int i = 0; i < argumentData.listMember.Count; i++) { listTmp.Add(argumentData.listMember[i]); } //只要一个参数的时候,不用列表类型 if (argumentData.nArgumentNum != 1) { member = listTmp; } else if (listTmp.Count > 0) { member = listTmp[0]; } } break; case EM_ArgumentType.Task: { List <string> listTmp = new List <string>(); //这里的任务取的是任务的id,直接string for (int i = 0; i < argumentData.listMember.Count; i++) { listTmp.Add(argumentData.listMember[i]); } //只要一个参数的时候,不用列表类型 if (argumentData.nArgumentNum != 1) { member = listTmp; } else if (listTmp.Count > 0) { member = listTmp[0]; } } break; case EM_ArgumentType.Custom: { List <object> listTmp = new List <object>(); for (int i = 0; i < argumentData.listMember.Count; i++) { listTmp.Add(GetCustomObj(argumentData.strTag, argumentData.listMember[i])); } //只要一个参数的时候,不用列表类型 if (argumentData.nArgumentNum != 1) { member = listTmp; } else if (listTmp.Count > 0) { member = listTmp[0]; } } break; } return(member); }