变量与对象命名问题

WuShiG 2012-06-02 11:51:23
现在我需要动态生成泛型集合的对象,在winForm中,文本框输入套餐的名称,然后点击添加,需要创建面向套餐类的对象,如何用我输入的变量名称来创建对象,求解,求大神,求救
...全文
158 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
showlie 2012-06-10
  • 打赏
  • 举报
回复
简单工厂模式
WuShiG 2012-06-10
  • 打赏
  • 举报
回复
谢谢大家的意见,非常感谢,问题已解决
stonespace 2012-06-05
  • 打赏
  • 举报
回复
当然你可以用反射,用xml去创建对象,不过如果你不想这么麻烦的话,用一个简单的if/new就可以,

Series s;
if (textbox1.Text=="A")
{
s=new AS();
}
else if (textbox1.Text=="B")
{
s=new BS();
}
....

WuShiG 2012-06-05
  • 打赏
  • 举报
回复
可是问题是如何用输入的键做名称呢,直接用变量名称吗?
就是CheckSets ???=new CheckSets();这个???号的内容如何填
WuShiG 2012-06-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
套餐的类型是已经已经建好的了吧,使用字典 Dictionary<string, 套餐类型> ,文本框输入后,新建一个套餐的实例,以输入的名称作为键,添加到字典里,查找时也以名称为键得到套餐实例
[/Quote]
可是问题是如何用输入的键做名称呢,直接用变量名称吗?
就是CheckSets ???=new CheckSets();这个???号的内容如何填
__天涯寻梦 2012-06-03
  • 打赏
  • 举报
回复
套餐的类型是已经已经建好的了吧,使用字典 Dictionary<string, 套餐类型> ,文本框输入后,新建一个套餐的实例,以输入的名称作为键,添加到字典里,查找时也以名称为键得到套餐实例
SocketUp 2012-06-03
  • 打赏
  • 举报
回复
不就是反射或者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("粥");
}
}
}
  • 打赏
  • 举报
回复
换一种非常质朴而尽量简单的设计思路吧。

111,126

社区成员

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

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

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