介绍一下c#中的RTTI,比如把一个string转换为控件的ID

babyboy 2003-08-29 04:42:04
如上
...全文
213 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnhgj 2003-08-30
  • 打赏
  • 举报
回复
是不是像js的document.all["dd"].innerText = "ddd";?
.net中可以用FindControl("dd").Text = "ddd";
xixigongzhu 2003-08-30
  • 打赏
  • 举报
回复
楼主的意思可能是想从String得到一个控件的访问名字,从而来访问这个控件。

如果是Web环境,可以用FindControl(string id)方法来得到一个控件。

如果是Winform环境,可以用this.GetType().GetField(string id),这个this是定义这个控件的父控件,比如form下定义了一个textbox1,可以这样得到:
FieldInfo fi = this.GetType().GetField("textbox1");
TextBox tbox = (TextBox) fi.GetValue(this);
xixigongzhu 2003-08-30
  • 打赏
  • 举报
回复
这样:
假如这个控件的父控件是当前页,那么:
((TextBox) this.FindControl("dd")).Text = "ddd";
timmy3310 2003-08-29
  • 打赏
  • 举报
回复
.Net的Runtime信息与C++是不一样的,类型信息放在组件的Metadata中

对于程序来说,可以通过Type.GetType("type name")来获取类型信息,对于实际的对象,可以调用System.Object实现的GetType方法得到对象的类型信息
也就是说任何对象,都可以通过obj.GetType()来获知它的类型信息,然后通过反射技术,可以得到该类型的基类、实现的接口、属性、方法等,也可以通过方法或者属性名称在该对象上进行调用。

这方面的内容比较多,你可以先看看MSDN中System.Reflection命名空间的部分来了解反射,有什么具体问题再提出来

对于你说的把string转换为控件ID,我不太明白

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧