gpt4 book ai didi

c# - 向对象添加值的最佳方法?

转载 作者:行者123 更新时间:2023-11-30 19:37:48 25 4
gpt4 key购买 nike

我正在寻找填充对象属性的最佳方法。情况是这样的:

我需要将一个对象发送到一个 dll 方法,这个对象有一个默认的名称属性(我稍后会展示)。实际上,为了对 dinamicall 的所有属性进行定价,我首先创建了一个字典,如下所示:

IDictionary<string, string> user = new Dictionary<string, string>();

稍后在 add 方法中,我要求用户像这样插入值:

Console.WriteLine("Insert user name:");
user["name"] = Console.ReadLine(); //valorized dictionary index
Console.WriteLine("Insert surname: ");
user["surname"] = Console.ReadLine();

在此之后,我将字典索引添加到对象属性:

object data = new{
name = user["name"],
surname = user["surname"]
};

User.add(data); //Send the user to add to rest resource..

这样怎么看,在我看来有点长。我想避免使用字典并直接将数据推送到对象中,可以这样做吗?是不是,还有另一种方法可以更快地达到结果?提前致谢。

最佳答案

如果满足您的需要,您可以使用dynamic ExpandoObject:

dynamic user = new ExpandoObject();
user.name = Console.ReadLine();
Console.WriteLine("Insert surname: ");
user.surname = Console.ReadLine();
User.add(user);

稍后,您还可以使用底层字典来动态访问属性:

var dict = (IDictionary<String, Object>)user;
dict["name"] = "John";
Debug.WriteLine(dict["name"]); // Outputs John
Debug.WriteLine(user.name); // Outputs John

关于c# - 向对象添加值的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36713021/

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