当前位置: 首页 > 编程语言 > C#

如何通过存储在字符串中的名称获取对象?分享

时间:2023-04-10 12:13:40 C#

C#:如何通过名称获取存储在String中的对象?是否可以在C#中按名称获取对象?那就是使用。获取this.obj0字符串objectName="obj0";executeSomeFunctionOnObject(this.someLoadObjectByName(objectName));不,这是不对的。对象没有名字——变量有。对象可以被任意数量的变量引用:零个、一个或多个。不过,您可以做的是按名称(使用Type.GetField)获取字段(静态或实例变量)并获取这些字段的值(对于特定实例,如果您使用实例变量)。根据您要执行的操作,您可能还需要考虑从名称到对象的字典。不,并非所有对象都有Name属性(对于初学者)。但是您可以将感兴趣的对象存储在字典中。您也可以通过名称获取控件,具体方法取决于UI库。您不能按名称访问对象。但是,通过反射,您可以使用该类的所有字段和属性(如果需要,可以按名称)。如果您的对象存储在字段级变量或属性中,那么这将为您提供所需的内容:TypemyType=typeof(MyClass);FieldInfo[]myFields=myType.GetFields(BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Public);PropertyInfo[]myproperties=myType.GetProperties(BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Public);您还可以调用GetField和GetProperty(singular)并传入一个字符串,以便它返回相同的要匹配的单个成员(确保检查是否为null)。阅读这些页面以了解有关在这种情况下使用的反射方法的更多信息:getPropertyGetPropertiesgetfieldgetfield好吧,我认为您正在寻找的是反射。你可以在这里看到一个很好的例子:http://www.switchonthecode.com/tutorials/csharp-tutorial-using-reflection-to-get-object-information如前所述-对象没有名字,但你有可能遍历对象并获取其类型并相应地执行操作。这篇博文展示了遍历和使用反射的一个很好的例子。这肯定是一个好的开始。请享用!以上是C#学习教程:C#:如何通过String中存储的名字获取对象?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: