C#设置基元类型的泛型属性值
我试图在C中动态地设置泛型对象中的基元类型的值#C#设置基元类型的泛型属性值,c#,generics,reflection,C#,Generics,Reflection,我试图在C中动态地设置泛型对象中的基元类型的值# //创建值对象(VO)的新实例 var valueObject=Activator.CreateInstance(); //获取VO的属性 var props=valueObject.GetType().GetProperties(); //循环遍历VO的每个属性 foreach(道具中的var道具) { if(prop.GetType().IsPrimitive) { var propertyType=prop.propertyType; va
//创建值对象(VO)的新实例
var valueObject=Activator.CreateInstance();
//获取VO的属性
var props=valueObject.GetType().GetProperties();
//循环遍历VO的每个属性
foreach(道具中的var道具)
{
if(prop.GetType().IsPrimitive)
{
var propertyType=prop.propertyType;
var值=默认值(propertyType);
道具设定值(道具,值);
}
}
问题是我不能使用
propertyType
作为类型来获取默认值。如何将propertyType
转换为可由default()
使用的类型?您应该将实例传递给SetValue:
prop.SetValue(valueObject, value);
如果要设置默认值,可以使用:
var propertyType = prop.PropertyType;
var defaultValue = Activator.CreateInstance(propertyType);
prop.SetValue(valueObject, defaultValue);
您应该将实例传递给SetValue:
prop.SetValue(valueObject, value);
如果要设置默认值,可以使用:
var propertyType = prop.PropertyType;
var defaultValue = Activator.CreateInstance(propertyType);
prop.SetValue(valueObject, defaultValue);
为什么需要设置默认值?原语有其默认值。为什么需要设置默认值?原语有其默认值。可能与的重复