簡體   English   中英

C#設置基本類型的通用屬性值

[英]C# Set generic property value of primitive type

我正在嘗試在C#中動態設置通用對象中原始類型的值

//Create a new instance of the value object (VO)
var valueObject = Activator.CreateInstance<T>();
//Get the properties of the VO
var props = valueObject.GetType().GetProperties();
//Loop through each property of the VO
foreach (var prop in props)
{
    if (prop.GetType().IsPrimitive)
    {
         var propertyType = prop.PropertyType;
         var value = default(propertyType);
         prop.SetValue(prop, value);
    }
}

問題是我無法使用propertyType作為類型來獲取其默認值。 如何將propertyType設置為default()可以使用的類型?

您應該將實例傳遞給SetValue:

prop.SetValue(valueObject, value);

如果要設置默認值,可以使用:

var propertyType = prop.PropertyType;
var defaultValue = Activator.CreateInstance(propertyType);
prop.SetValue(valueObject, defaultValue);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM