为了偷懒,用泛型写了一个列表类,但是在实例化T的时候遇到了莫大的问题。微软自带的new约束明确表示:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。然后经过我3分钟的冥思苦想,终于绕开了这个奇葩的东西,实现了我的偷懒目标。下面上代码:
namespace 我的命名空间
{
public class ListBase<T>
{
......
private List<T> _items = new List<T>();
public ListBase(string key)
{
string[] lines = GetArray(key);
for (int i = 0; i < lines.Length; i++)
{
T t;
t = (T)Assembly.Load("我的命名空间").CreateInstance(typeof(T).ToString(), false, BindingFlags.CreateInstance, null, new object[] { lines[i] }, null, null);
this._items.Add(t);
}
}
public List<T> Items
{
get { return _items; }
}
protected string[] GetArray(string key)
{
......
}
}
}