public GetValue(bool isBind, GameObject gameObject, string vString, Type type) { if (isBind) { _valueType = ValueTypes.Bind; BindValue = new BindGetValue(gameObject, vString, type); } else { _valueType = ValueTypes.Const; ConstValue = new ConstValue(vString, type); } }
public GetValue(Type type) { switch (ValueType) { case ValueTypes.Const: ConstValue = new ConstValue(type); break; case ValueTypes.Bind: BindValue = new BindGetValue(type); break; default: throw new ArgumentOutOfRangeException(); } }
public void ChangeType(Type type) { if (ConstValue == null) { ConstValue = new ConstValue(type); } if (BindValue == null) { BindValue = new BindGetValue(type); } if (ConstValue.Type.Value != type) { ConstValue = new ConstValue(type); } if (BindValue.ReturnType.Value != type) { BindValue = new BindGetValue(type); } }