C# 具有不同类(带参数)的泛型函数?

C# 具有不同类(带参数)的泛型函数?,c#,generics,c#-4.0,C#,Generics,C# 4.0,我的神奇语法如下所示: public List<T> LoadItems(string fileName) where T : new (Dictionary<string,string>) { ... List<T> List = new List<T>(); while(reader.peek() != -1) { Dictionary<string, string> NameValuePa

我的神奇语法如下所示:

public List<T> LoadItems(string fileName) where T : new (Dictionary<string,string>)
{
   ...
   List<T> List = new List<T>();
   while(reader.peek() != -1)
   {  
       Dictionary<string, string> NameValuePairs = new Dictionary<string,string>();
       ...
       //parse file and load dictionary with name value pairs
       ...
       List.Add(new T(NameValuePairs));

   }
} 
公共列表加载项(字符串文件名),其中T:new(字典)
{
...
列表=新列表();
while(reader.peek()!=-1)
{  
Dictionary NameValuePairs=新字典();
...
//使用名称-值对解析文件并加载字典
...
列表。添加(新的T(NameValuePairs));
}
} 
然后我希望能够像这样调用这个函数

public List<Class1> LoadClass1()
{
    return LoadItems<Class1>("file1.csv");
}

public List<Class2> LoadClass1()
{
    return LoadItems<Class2>("file2.csv");
}

public LisT<Class3> LoadClass1()
{
    return LoadItems<Class3>("file3.csv");
}
公共列表LoadClass1()
{
返回加载项(“file1.csv”);
}
公共列表LoadClass1()
{
返回加载项(“file2.csv”);
}
公共列表LoadClass1()
{
返回加载项(“file3.csv”);
}

我意识到这样做是不可能的,但是有没有一种方法可以实现这样的功能,也许可以使用我的三个类的接口?

如果您的类,Class1、Class2、Class3都使用字典作为构造函数参数,您可以让它们从公共基类继承并使用
Activator.CreateInstance(typeof(T),NameValuePairs)
创建类的实例


如果你这样做的话,你会想做你的泛型约束
where T:BaseClass
,并在你的类型创建过程中做一些错误检查/异常处理。

我想你有理由从csv中读取名称-值对,但只是确定一下:有更简单的方法(即支持Net)反序列化对象的方法。我可能会做一些不同的事情,并使用CSV文件作为“端点”。我会研究它。这正是我需要的。谢谢。