gpt4 book ai didi

c# - C# 中的动态,设置属性值

转载 作者:行者123 更新时间:2023-11-30 21:14:51 26 4
gpt4 key购买 nike

我需要为一个对象设置一个属性

Personi p = new Personi();//this class has a property Datelindja(DateTime)
p.Emri = "Florim";
p.Mbiemri = "Maxhuni";
SetValue(p, "Datelindja", DateTime.Now); //I nead these method. using dynamic keyword
Console.WriteLine(p.Ditelindja);

我如何实现此方法以根据这些参数设置值。

方法签名

SetValue(dynamic orgObj, string property, dynamic value)

抱歉我的英语不好。

最佳答案

我不明白为什么你会在这里需要 dynamic
SetValue 需要使用反射:

void SetValue<TInstance, TValue>(TInstance orgObj, string property, TValue value)
{
orgObj.GetType().GetProperty(property).SetValue(orgObj, value, null);
}

您也可以在不使用泛型的情况下编写此方法,因为在这种情况下它们不会增加任何好处:

void SetValue(object orgObj, string property, object value)
{
orgObj.GetType().GetProperty(property).SetValue(orgObj, value, null);
}

关于c# - C# 中的动态,设置属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com