コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }