Я изучаю дженерики в C#. Так что это может быть просто для опытных людей.
У меня 71 модель, и я хочу иметь возможность хранить в них данные из CSV.
Обработка не очень сложна, я иметь эту сигнатуру метода:
private static async Task ProcessFileAsync<T>(string currentFile) where T : class, new()
Самая сложная часть - это вызов it. У меня есть один CSV-файл для каждой модели, в которую я хочу поместить данные. Имя файла CSV идентично имени модели (например: Product.csv будет соответствовать модели продукта).
В идеале я хотел бы просто отправить имя в вызывающей стороне, но я получаю a "X - переменная, но используется как тип" Ошибка компилятора.
Я мог бы использовать массивный оператор switch для решения этой проблемы, но это кажется относительно расточительным.
Любая помощь будет оценен.
Другими словами, я мог бы сделать следующее:
switch(justFName)
{
case "Address":
_ = ProcessFileAsync<Address>(ci.FullName);
break;
case "Currency":
_ = ProcessFileAsync<Currency>(ci.FullName);
break;
...
...
...And so on
...
...
default:
//No method for this file name
break;
}
вместо этого я хотел бы иметь что-то вроде этого: _ = ProcessFileAsync<justFName>(ci.FullName);