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); }
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(); }
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); }