容易吗?使用C#中的变量访问对象的属性

ozk*_*zke 1 c# dynamic

可能重复:
属性名称,需要其值

嗨,

这对大多数人来说应该很容易.我想通过使用变量值来访问对象中的普通变量(比如说例子).

例如:我有一个包含变量名列表的数组,我想通过使用它们从对象获取信息.显然这是错误的:

string[] variable_names = new string[] {"name", "surname"};
myObject.variable_names[0] = 1; 
myObject.variable_names[1] = 1;
Run Code Online (Sandbox Code Playgroud)

在其他语言(不是C#)我使用:

myObject[variable_names[0]] = 1; 
Run Code Online (Sandbox Code Playgroud)

我知道这个例子看起来很愚蠢,但这只是解释它的一种方式.

提前致谢 :)

Joh*_*ers 6

您需要使用Reflection来执行此操作.假设您要访问的内容是myObject的属性:

var type = myVariable.GetType();
var property = type.GetProperty("name");
property.SetValue(myVariable, 1, new object[] {});
Run Code Online (Sandbox Code Playgroud)