我必须填写几个清单。为了使重复代码无效,我认为是通用方法。如何正确获取列表项的类型,而不是创建该类型的新对象?
我粗略地了解它应该如何运作:
public void fillLookups(List<object> myList)
{
Type parameterType = myList.GetType().GetGenericArguments().Single();
parameterType instance = (parameterType)Activator.CreateInstance(objectType);
myList.Add(instance);
...
}
答案 0 :(得分:3)
试试这个:
static void AddSomeInstances<T>(List<T> list) where T : new()
{
T newItem = new T();
list.Add(newItem);
}
static void Main(String[] args)
{
List<int> test = new List<int>();
// 0
Console.WriteLine(test.Count);
AddSomeInstances(test);
// 1
Console.WriteLine(test.Count);
}