日期:2014-05-17  浏览次数:20742 次

如何根据字符串得到对象?
我看了网上的资料,说可以反射,但是反射需要类型。如果我不知道类型,怎么办?

string mingzi = "Button1";
??? 这里怎么写?

------解决方案--------------------
写不了,要么用object要么用它的基类。

C#是强类型的编程语言。
------解决方案--------------------
这不是反射,这叫通过key找到控件。
 string mingzi = "Button1";
            var ctl = this.Controls.Find(mingzi, false)[0];
            if (ctl is Button)
            {
                Button btn = ctl as Button;//你想要的btn
            }

------解决方案--------------------
反射不用知道类型 反射出来Type类型 遍历出你需要的字段,方法或属性 然后调用或执行
------解决方案--------------------
而且你似乎需要的不是创建对象,而是获取现有的控件,这个根本用不着反射

Control c = Controls["Button1"];
就可以了。
------解决方案--------------------
this.Controls["Button1"]