我在一个类中有一个随机名称的字段,例如:

class Foo {
    public string a2de = "e2"
}

我在另一个变量中有这个字段的名称,例如:
string vari = "a2de"

我可以使用 a2de 的值来获取或设置字段 vari 的值吗?

喜欢:
getvar(vari)

或者
setvar(vari) = "e3"

最佳答案

你必须使用反射。

要获取 targetObject 上的属性值:

var value = targetObject.GetType().GetProperty(vari).GetValue(targetObject, null);

要获取字段的值,它类似于:
var value = targetObject.GetType().GetField(vari).GetValue(targetObject, null);

如果属性/字段不是公共(public)的或者它是从基类继承的,则需要向 BindingFlagsGetProperty 提供显式 GetField

10-05 23:48