public void Set <U>(string paraName, U value) { if (mParameters.ContainsKey(paraName)) { StateParameterDataType type = StateParameterDataType.TRIGGER; Type vType = value.GetType(); if (vType == typeof(int)) { type = StateParameterDataType.INT; } else if (vType == typeof(float)) { type = StateParameterDataType.FLOAT; } else if (vType == typeof(bool)) { type = StateParameterDataType.BOOLEAN; } else { } Assert(type == mParameters[paraName].DataType, "wrong value type"); mParameters[paraName].Value = value; Update(paraName); } }
/// <summary> /// 该控制参数名不能重复 /// </summary> /// <param name="paraName">参数名</param> /// <param name="dataType">参数类型</param> /// <param name="ctlValue">参数控制值</param> /// <returns></returns> public StateController <T> AddParameter(string paraName, StateParameterDataType dataType, object ctlValue) { if (!mParameters.ContainsKey(paraName)) { StateControllerParameter param = new StateControllerParameter(); param.Name = paraName; param.DataType = dataType; param.Value = ctlValue; mParameters.Add(paraName, param); } else { // duplicated } return(this); }