Мой магический синтаксис будет выглядеть так:
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));
}
}
Тогда я бы хотел вызывать эту функцию следующим образом ...
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");
}
Я понимаю, что это не может быть сделано так, но есть ли способ реализовать что-то, что работает следующим образом, возможно, используя интерфейс для моих трех классов?