Ejemplo n.º 1
0
        object DoConversion(object value, Type targetType, object parameter, CultureInfo culture,
                            ConversionOperator op)
        {
            ConvertibleKind valueKind;
            var             c_value = ToIConvertible(value, culture, out valueKind);

            if (c_value == null)
            {
                return(null);
            }

            ConvertibleKind paramKind;
            var             c_param = ToIConvertible(parameter, culture, out paramKind);

            if (c_param == null || paramKind != ConvertibleKind.OneWay)
            {
                return(null);
            }

            double result;

            try
            {
                var d_value = c_value.ToDouble(culture);
                var d_param = c_param.ToDouble(culture);

                result = op(d_value, d_param);
            }
            catch
            {
                return(null);
            }

            return(FromIConvertible(result, valueKind));
        }
 public ReadOnlyConversionOperator(ConversionOperator conversionOperator)
 {
     this.conversionOperator = conversionOperator;
     body       = new ReadOnlyMethodBody(conversionOperator.Body);
     parameter  = new ReadOnlyOperatorParameter(conversionOperator.ParameterName, conversionOperator.ParameterType);
     returnType = new ReadOnlyTypeReference(conversionOperator.ReturnType);
 }
Ejemplo n.º 3
0
    public static void Main()
    {
        SomeValType[] a = new SomeValType[10];
        a[0].m_x = 123;
        Console.WriteLine(a[0].m_x);    // Displays 123

        new FieldInitializationInCtor("Test");
        TypeConstructorPerformance.Go();
        ConversionOperator.Go();
        ExtensionMethods.Go();
    }
Ejemplo n.º 4
0
        object DoConversion(object value, Type targetType, object parameter, CultureInfo culture,
            ConversionOperator op)
        {
            ConvertibleKind valueKind;
            var c_value = ToIConvertible(value, culture, out valueKind);
            if (c_value == null)
                return null;

            ConvertibleKind paramKind;
            var c_param = ToIConvertible(parameter, culture, out paramKind);
            if (c_param == null || paramKind != ConvertibleKind.OneWay)
                return null;

            double result;

            try
            {
                var d_value = c_value.ToDouble(culture);
                var d_param = c_param.ToDouble(culture);

                result = op(d_value, d_param);
            }
            catch
            {
                return null;
            }

            return FromIConvertible(result, valueKind);
        }