日期:2014-05-18 浏览次数:20811 次
不就是反射或者if语句的知识点嘛 using System; using System.Windows.Forms; using System.Reflection; namespace WindowsFormsApplication4 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Assembly assembly = Assembly.Load("WindowsFormsApplication4"); Type type = assembly.GetType("WindowsFormsApplication4."+textBox1.Text); if (type != null) { object obj = Activator.CreateInstance(type); MethodInfo m = type.GetMethod("ShowName"); if (m != null) { m.Invoke(obj, null); } } } } public class 米饭 { public void ShowName() { MessageBox.Show("米饭"); } } public class 馒头 { public void ShowName() { MessageBox.Show("馒头"); } } public class 粥 { public void ShowName() { MessageBox.Show("粥"); } } }
------解决方案--------------------
套餐的类型是已经已经建好的了吧,使用字典 Dictionary<string, 套餐类型> ,文本框输入后,新建一个套餐的实例,以输入的名称作为键,添加到字典里,查找时也以名称为键得到套餐实例
------解决方案--------------------
当然你可以用反射,用xml去创建对象,不过如果你不想这么麻烦的话,用一个简单的if/new就可以,
Series s;
if (textbox1.Text=="A")
{
s=new AS();
}
else if (textbox1.Text=="B")
{
s=new BS();
}
....