示例#1
0
        private static IPinDataType CreateTargetPinDataType(ConvertTypeCode typeCode)
        {
            switch (typeCode)
            {
            case ConvertTypeCode.Any:
                return(PinDataTypeFactory.CreateAny());;

            case ConvertTypeCode.Boolean:
                return(PinDataTypeFactory.CreateBoolean());

            case ConvertTypeCode.Byte:
                return(PinDataTypeFactory.FromType(typeof(byte)));

            case ConvertTypeCode.Int16:
                return(PinDataTypeFactory.FromType(typeof(short)));

            case ConvertTypeCode.Int32:
                return(PinDataTypeFactory.CreateInt32());

            case ConvertTypeCode.Int64:
                return(PinDataTypeFactory.FromType(typeof(long)));

            case ConvertTypeCode.Float32:
                return(PinDataTypeFactory.FromType(typeof(float)));

            case ConvertTypeCode.Float64:
                return(PinDataTypeFactory.FromType(typeof(double)));

            case ConvertTypeCode.String:
                return(PinDataTypeFactory.CreateString());
            }

            return(PinDataTypeFactory.Create <object>());
        }
示例#2
0
        private static IPinDataType CreateTargetPinDataType(ConvertTypeCode typeCode)
        {
            switch (typeCode)
            {
            case ConvertTypeCode.Any:
                return(PinDataTypeFactory.Create <ISequence <object> >());

            case ConvertTypeCode.Boolean:
                return(PinDataTypeFactory.Create <ISequence <bool> >());

            case ConvertTypeCode.Byte:
                return(PinDataTypeFactory.Create <ISequence <byte> >());

            case ConvertTypeCode.Int16:
                return(PinDataTypeFactory.Create <ISequence <short> >());

            case ConvertTypeCode.Int32:
                return(PinDataTypeFactory.Create <ISequence <int> >());

            case ConvertTypeCode.Int64:
                return(PinDataTypeFactory.Create <ISequence <long> >());

            case ConvertTypeCode.Float32:
                return(PinDataTypeFactory.Create <ISequence <float> >());

            case ConvertTypeCode.Float64:
                return(PinDataTypeFactory.Create <ISequence <double> >());

            case ConvertTypeCode.String:
                return(PinDataTypeFactory.Create <ISequence <string> >());
            }

            return(PinDataTypeFactory.Create <object>());
        }
示例#3
0
        private object EvaluateInternal <T, TResult>(T input, ConvertTypeCode typeCode)
        {
            var conversionType = typeCodeLookUp[typeCode];

            switch (typeCode)
            {
            case ConvertTypeCode.Boolean:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Boolean, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Byte:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Byte, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Int16:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Int16, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Int32:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Int32, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Int64:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Int64, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Decimal:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Decimal, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Float32:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Single, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Float64:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Double, CultureInfo.InvariantCulture));

            case ConvertTypeCode.String:
                return((TResult)System.Convert.ChangeType(input, TypeCode.String, CultureInfo.InvariantCulture));

            case ConvertTypeCode.Any:
            default:
                return((TResult)System.Convert.ChangeType(input, TypeCode.Object, CultureInfo.InstalledUICulture));
            }
        }
示例#4
0
        private ISequence <TResult> EvaluateInternal <T, TResult>(ISequence <T> input, ConvertTypeCode typeCode)
        {
            var conversionType = typeCodeLookUp[typeCode];

            switch (typeCode)
            {
            case ConvertTypeCode.Boolean:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Boolean, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Byte:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Byte, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Int16:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Int16, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Int32:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Int32, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Int64:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Int64, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Decimal:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Decimal, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Float32:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Single, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Float64:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.Double, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.String:
                return(input.Select(x => (TResult)System.Convert.ChangeType(x, TypeCode.String, CultureInfo.InvariantCulture)));

            case ConvertTypeCode.Any:
            default:
                return(input.Cast <TResult>());
            }
        }