繁体   English   中英

C#.net中对象的动态类型转换

[英]dynamic type casting of objects in C#.net

我创建了一个class student并在该班级中创建了contact对象(汇总)。 我正在“对象”数组中检索所有存储的对象。

如果要访问student属性,则必须使用student类型对其进行student ;如果要访问contact属性,则必须给出完整路径( student_object.contact_object.attribute_name ),或者只需键入具有contact student_object.contact_object.attribute_name类型并获取属性值即可。

我停留在两个地方:

  1. 如果我接受用户的类名,然后要访问该值。 我怎样才能做到这一点? 如何使用文本框变量输入类型转换。
  2. 如果我在文本框中接受用户的字段名称。 如何使用文本框变量访问值?

乔恩,实际上我已经在C#.NET中创建了一个面向对象的数据库。 上面的课程在那里 我正在检索对象数组中的所有对象。 班级学生具有字段名称和年龄,而联系人具有mobileID。 现在,我通过文本框创建查询。 如果用户想查看所有对象的名称,则可以保留var2名称。 但我无法收到此消息messageBox.show(o0作为Student).var2); 如果给我var1 messageBox.show(o0 as var1).var2),而不是Student,则相同。 我可以这样做吗? 谢谢/巴蒂

转换对于编译时信息很重要。 这排除了用户在执行时提供的任何内容。

听起来您真的需要反思:

PropertyInfo property = value.GetType().GetProperty(propertyName);
// Insert validation here...
object propertyValue = property.GetValue(value, null);

如果希望用户能够评估诸如Address.ZipCode之类的属性的路径 ,则需要变得更聪明,但这应该为您提供一个起点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM