Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用反射更改属性类型_C#_.net_Reflection - Fatal编程技术网

C# 使用反射更改属性类型

C# 使用反射更改属性类型,c#,.net,reflection,C#,.net,Reflection,我的域类中有一个十进制值属性: public class Domain { public decimal Value {get;set} } 我需要用两个数据库值分配该Value属性: obj1.Value = decimal.Parse(reader["Value"].ToString()); obj2.Value = decimal.Parse(reader["Value2"].ToString()); 然后我有一个比较器方法来比较这两个属性

我的域类中有一个十进制值属性:

public class Domain
{
   public decimal Value {get;set}
}
我需要用两个数据库值分配该Value属性:

obj1.Value = decimal.Parse(reader["Value"].ToString());
obj2.Value = decimal.Parse(reader["Value2"].ToString());
然后我有一个比较器方法来比较这两个属性:

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);
}
public void比较(列出域)
{
//使用反射获取属性
//如果属性值不同,我需要为其设置“字符串”值[不同]。
属性设置值(可比较对象,“[不同]”,空);
}

有可能吗?

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


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

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


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

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


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

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


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

这根本不可能。属性
的类型在编译时设置为
十进制
,在运行时无法更改。相反,您需要专注于将
字符串
值转换为
十进制
值。或者为
Domain.Value
选择更合适的类型


如果您选择转换路线,那么我建议您考虑像这样的方法,这根本是不可能的。属性
的类型在编译时设置为
十进制
,在运行时无法更改。相反,您需要专注于将
字符串
值转换为
十进制
值。或者为
Domain.Value
选择更合适的类型


如果您选择转换路线,那么我建议您考虑像这样的方法,这根本是不可能的。属性
的类型在编译时设置为
十进制
,在运行时无法更改。相反,您需要专注于将
字符串
值转换为
十进制
值。或者为
Domain.Value
选择更合适的类型


如果您选择转换路线,那么我建议您考虑像这样的方法,这根本是不可能的。属性
的类型在编译时设置为
十进制
,在运行时无法更改。相反,您需要专注于将
字符串
值转换为
十进制
值。或者为
Domain.Value
选择更合适的类型


如果您选择转换路径,那么我建议您考虑类似

的方法,这与类型安全语言正好相反。你不能那样做。这与类型安全语言完全相反。你不能那样做。这与类型安全语言完全相反。你不能那样做。这与类型安全语言完全相反。你不能那样做。亲爱的柯蒂斯,你介意为你的解决方案分享一段代码吗?我相信这将是最富有成效的。谢谢亲爱的柯蒂斯,你介意为你的解决方案分享一段代码吗?我相信这将是最富有成效的。谢谢亲爱的柯蒂斯,你介意为你的解决方案分享一段代码吗?我相信这将是最富有成效的。谢谢亲爱的柯蒂斯,你介意为你的解决方案分享一段代码吗?我相信这将是最富有成效的。非常感谢。