我想调用一个接受T type
对象的方法。在我的自定义方法中,我收到了T type
。如何将T type
传递给已经收到T type
的方法?可以通过反射调用它吗?
下面是我的方法:
public IEnumerable<T> Method2<T>(string fileSrc, char sep)
{
// Using LinqToCsv lib
IEnumerable<T> list;
CsvFileDescription inputFileDescription = new CsvFileDescription
{
SeparatorChar = sep,//specify the separator line
FirstLineHasColumnNames = true //Header is in the first line
};
CsvContext csvContext = new CsvContext();
list = csvContext.Read<T>(fileSrc, inputFileDescription);
// Data is now available via variable list.
return list;
}
在上述方法中,csvContext.Read<T>(fileSrc, inputFileDescription);
被声明为
public IEnumerable<T> Read<T>(string fileName, CsvFileDescription fileDescription)
where T : class, new();
感谢您的帮助。
答案 0 :(得分:5)
调用泛型方法时,需要确保type参数与相同的泛型约束匹配。
因此您需要将方法声明更改为
public IEnumerable<T> Method2<T>(string fileSrc, char sep) where T : class, new()
为了调用Read<T>()
方法,该方法需要其T
类型的参数来匹配这些约束。