Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.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#_Generics_Reflection - Fatal编程技术网

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

我试图在C中动态地设置泛型对象中的基元类型的值#

//创建值对象(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);

为什么需要设置默认值?原语有其默认值。为什么需要设置默认值?原语有其默认值。可能与的重复