C#:如何通过存储在String中的名称获取对象?

dis*_*man 3 .net c# reflection

是否可以在C#中按名称获取对象?

即使用.获取this.obj0

string objectName = "obj0";
executeSomeFunctionOnObject(this.someLoadObjectByName(objectName));
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 8

不,这不对.

对象没有名称 - 变量有.对象可以由任意数量的变量引用:零,一个或多个.

但是,您可以做的是按名称(使用Type.GetField)获取字段(静态或实例变量)并获取这些字段的值(对于特定实例,如果您正在使用实例变量).

根据您要执行的操作,您可能还需要考虑从名称到对象的字典.