for (int i = 1; i <= 5; i++) { string propName = "Jhyf_Jhn_Week" + i; var propValue = obj.GetType().GetProperty(propName).GetValue(obj, null); if (propValue != null &&(int)propValue == 0) { obj.GetType().GetProperty(propName).SetValue(obj, null, null); } } C#提示转换无效
时间: 2023-07-16 09:13:19 浏览: 164
propname_data.rar_The Program
这个错误是因为您尝试将null赋值给int类型的属性。在C#中,null不能赋值给值类型(如int),只能赋值给引用类型(如string)。
要解决这个问题,您可以使用Nullable类型。Nullable类型允许您将null赋值给值类型。例如,您可以将int改为int?:
```
for (int i = 1; i <= 5; i++)
{
string propName = "Jhyf_Jhn_Week" + i;
var propValue = obj.GetType().GetProperty(propName).GetValue(obj, null);
if (propValue != null && propValue is int && (int)propValue == 0)
{
obj.GetType().GetProperty(propName).SetValue(obj, null, null);
}
}
```
注意,我还添加了一个条件检查,以确保属性的值是int类型。这是因为如果属性的类型不是int,将会抛出另一个异常。
阅读全文