public CompositionValue(object value, eCompositionTypes returnType)
        {
            this.returnType = returnType;

            switch (returnType)
            {
                case eCompositionTypes.Object:
                    this.value = value as object;
                    break;

                case eCompositionTypes.Number:
                    this.value = value as int?;
                    break;

                case eCompositionTypes.Real:
                    this.value = value as float?;
                    break;

                case eCompositionTypes.String:
                    this.value = value as string;
                    break;

                case eCompositionTypes.Logical:
                    this.value = value as bool?;
                    break;

                default:
                    this.value = value;
                    break;
            }
        }
 public CompositionValue() {
     this.value = new object();
     this.returnType = eCompositionTypes.undefined;
 }
 public static void CopyValue(eCompositionTypes type, int source_idx, int dest_idx)
 {
     _strategies[type].CopyValue(source_idx, dest_idx);
 }
 public static void ApplyOperand(eCompositionTypes type, int index, string operand, int index2 = -1)
 {
     _strategies[type].ApplyOperand(index, operand, index2);
 }
 public static void DefineValue(eCompositionTypes type, int index, object value)
 {
     _strategies[type].DefineValue(index, value);
 }