2014-02-07 81 views
0

我在我的领域类的小数值属性更改属性类型方法比较这两个属性:使用反射

public void Compare(List<object> Domains) 
{ 
    //get properties with reflection 

    //if the properties values are different i need to set a 'string' value [DIFFERENT]   to it.  
    prop.SetValue(comparableObj, "[DIFFERENT]", null); 
} 

有没有可能做?

+1

这正是一种类型安全的语言的对面看着方法。你不能那样做。 – SLaks

回答

1

我不认为有可能在运行时更改属性的类型。我知道如果可能的话,这将是一个坏主意。

您最好有另一个字段存储比较结果。然后,当您需要使用该“[DIFFERENT]”值时,请检查您存储结果的字段,然后使用该值。

2

这简直是不可能的。在编译时,属性Value的类型设置为decimal,这在运行时不能更改。相反,您需要专注于将string值转换为decimal值。这或为Domain.Value选择更适合的类型。

如果你去转换路线,那么我建议像Convert.ToDecimal