我有字符串输入,根据输入的值,我想调用特定对象的构造函数(新Object1(int)、新Object2( string )、新Object3(int、int)等),所有这些都实现了IObject接口。
与其用明显的(缓慢的)方式链接if/int语句,我更愿意使用从字符串到构造函数的字典(例如{"object1“->新Object1(int)} )。
在C#中有什么方法可以这样做吗?也许可以将"typeof“与构造函数结合起来?我想避免工厂,因为这需要并行代码结构,这是我想避免的。
提前谢谢你
发布于 2012-04-24 01:40:46
如何划分一个静态方法来为您想要的每个类创建一个对象,而不是使用一个字典映射字符串到静态生成器方法的委托类型?我知道这不是你想要的问题,但我现在不能对你的问题发表评论。
class Program
{
delegate object GetObjDelegate();
static Dictionary<string, GetObjDelegate> Dic = new Dictionary<string, GetObjDelegate>();
static void Main(string[] args)
{
Dic.Add("aaa", A.GetObj);
Dic.Add("bbb", B.GetObj);
object a = Dic["aaa"]();
object b = Dic["bbb"]();
}
}
class A
{
public A()
{
}
public static A GetObj()
{
return new A();
}
}
class B
{
public B()
{
}
public static B GetObj()
{
return new B();
}
}
https://stackoverflow.com/questions/10290386
复制相似问题