C# 通过名称获取对象属性

Zer*_*er0 2 c#

在其他语言中,例如 JavaScript,我可以使用:

const obj = { a: 5 };
obj["a"] //returns 5
Run Code Online (Sandbox Code Playgroud)

如果 C# 中的名称以字符串形式给出,是否可以获取对象属性?我不想要一棵巨大的 if/else 树

Dil*_*d K 7

您可以使用反射:

 var obj = new { A = 5 } as object; // your object

 var five = obj.GetType().GetProperty("A").GetValue(obj);
Run Code Online (Sandbox Code Playgroud)

此外,您还可以使用动态:

var fiveDynamic = (obj as dynamic).A;
Run Code Online (Sandbox Code Playgroud)