gpt4 book ai didi

C# 一般设置属性

转载 作者:太空狗 更新时间:2023-10-30 01:04:00 26 4
gpt4 key购买 nike

我有一个如下所示的 C# 类:

public class Model 
{
public string title;
public string name;
...
}

例如,我在某处有一个带有属性的变量,我需要设置 "title"。我的 C# 很生疏,但基本上我想做的是:

var attrToBeSet = "title";
var model = new Model();
model[attrToBeSet] = "someValue";

显然那是伪代码,但是......这甚至可以用 C# 实现吗?

最佳答案

是的;反射,在这种情况下是一个字段(但属性会更好):

var attrToBeSet = "title";
var field = model.GetType().GetField(attrToBeSet);
field.SetValue(model, "someValue");

请注意,这比常规代码慢得多。如果你正在做很多这样的事情,有一些方法可以通过元编程加快反射速度,也许将东西烘焙到 Action<Model,object> 中。或类似的 DynamicMethod - 但这只有在经常做的情况下才重要。

请注意,这实际上应该是一个属性(您应该避免直接公开字段):

public string Title {get;set;}

然后:

var attrToBeSet = "Title";
var prop = model.GetType().GetProperty(attrToBeSet);
prop.SetValue(model, "someValue", null);

关于C# 一般设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25205968/

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