我正在学习C#中的泛型。因此,对于经验丰富的人来说,这可能很简单。
我有71种不同的模型,我希望能够将CSV中的数据一般存储到它们中。
处理部分不是超级难,我有这个方法签名:
private static async Task ProcessFileAsync<T>(string currentFile) where T : class, new()
困难的部分是调用。我要将数据放入的每个模型都有一个CSV文件。 CSV文件的名称与模型名称相同(例如:Product.csv对应于产品模型)。
理想情况下,我只想在调用方中发送名称,但是却收到“ 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);