public CompiledExpressionItem(CompiledExpressionItemKind kind, object value)
        {
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }
            //
            this.kind = kind;
            switch (kind)
            {
            case CompiledExpressionItemKind.Constant:
            {
                constant = (double)value;
                break;
            }

            case CompiledExpressionItemKind.Variable:
            {
                variableName = (string)value;
                break;
            }

            case CompiledExpressionItemKind.Operation:
            {
                operationName = (string)value;
                break;
            }

            default:
            {
                throw new InvalidOperationException("Unexpected kind.");
            }
            }
        }
 public CompiledExpressionItem(CompiledExpressionItemKind kind, object value) {
     if (value == null)
         throw new ArgumentNullException("value");
     //
     this.kind = kind;
     switch (kind) {
         case CompiledExpressionItemKind.Constant: {
             constant = (double) value;
             break;
         }
         case CompiledExpressionItemKind.Variable: {
             variableName = (string) value;
             break;
         }
         case CompiledExpressionItemKind.Operation: {
             operationName = (string) value;
             break;
         }
         default: {
             throw new InvalidOperationException("Unexpected kind.");
         }
     }
 }