泛型类引用有参数的构造函数方法,请大家帮忙对比。

离子漂浮物 2008-07-15 04:25:44
代码一:

//抽象
public abstract class a
{
public a(string name) { }
public abstract void run();
}
//抽象继承
public class aa : a
{
private string _name;
public aa(string name) : base(name) { _name = name; }
public override void run() { HttpContext.Current.Response.Write(_name); }
}
//泛型应用
protected a testA<T>() where T : a
{
return (T)Activator.CreateInstance(typeof(T), "newName");
}



代码二:

//抽象
public abstract class b
{
public abstract void load(string name);
public abstract void run();
}
//抽象继承
public class bb : b
{
private string _name;
public override void load(string name) { _name = name; }
public override void run() { HttpContext.Current.Response.Write(_name); }
}
//泛型应用
protected b testB<T>() where T : b,new()
{
T t = new T(); t.load("loadName");
return t;
}


我是用上以两种方法来应用有“参数”的构建类。
第一种是用“Activator.CreateInstance”来创建带参数构建的类。
第二种是用了一个load的方法来代替构建函数,作成了伪参数构建类。

作为正式使用,想请大家帮我点评一下哪种方式比较好比较节约资源。或是有更好的实现方法。
...全文
208 点赞 收藏 3
写回复
3 条回复
GhostAdai 2008年07月28日
同意,用第二种!
回复 点赞
bindsang 2008年07月20日
性能上来说,第二种好些,第一种用到了反射,性能会有折扣的,尤其是在web程序上更明显
回复 点赞
fuadam 2008年07月15日
第二种

或者改成工厂模式就完了
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告