C# 使用作为泛型类型发送的对象

C# 使用作为泛型类型发送的对象,c#,.net,generics,filehelpers,C#,.net,Generics,Filehelpers,我有一个接收泛型类型的方法 public string GetObject<T>(IEnumerable<T> obj) { //Type t = typeof(T); //Type t = obj.GetType(); //var t = (T)Activator.CreateInstance(typeof(T),new object[] {obj }); var output = fh.WriteString(t);

我有一个接收泛型类型的方法

public string GetObject<T>(IEnumerable<T> obj)
{
     //Type t = typeof(T);
     //Type t = obj.GetType();
     //var t = (T)Activator.CreateInstance(typeof(T),new object[] {obj });
     var output = fh.WriteString(t);
     return output;
}
公共字符串GetObject(IEnumerable obj)
{
//类型t=类型(t);
//类型t=obj.GetType();
//var t=(t)Activator.CreateInstance(typeof(t),新对象[]{obj});
var输出=fh.写入限制(t);
返回输出;
}
我想访问作为泛型类型接收的此对象,以便将其用作的
WriteString
方法的参数。上面的注释行都不起作用,如果我试图使用前三个注释行中的任何一个方法生成的
t
变量,我会得到一个错误

参数System.Type不可分配给参数类型
Systems.Collections.Generic.IEnumerable

如何获取要在
WriteString
方法中使用的对象

编辑
如果我显得含糊不清,我深表歉意:)我实际上希望传递给FileHelperEngine使用的方法的值。我不确定是否有任何注释行是正确的,或者是将实际对象发送到泛型类型的理想方式。我所希望的就是能够将参数中接收到的值作为obj发送给FileHelperEngine,这基本上就是将这个IEnumerable obj发送给WriteString方法。

错误消息非常清楚,不是
类型
对象。您需要传递
IEnumerable
实例:


但请再次参阅OP的代码。似乎OP并没有试图给出
obj
,但是使用反射创建的实例,其中整个
t
类型有一个单参数构造函数,接受整个
IEnumerable
。@Matíasfidemrazier我想OP是混淆了:)这正是我的观点,我放弃了我的答案,因为你的答案似乎是对的。顺便说一句,我不明白为什么OP没有尝试直接将
obj
交给
WriteString
,看看会发生什么……有时我觉得人们认为写一行代码可能会产生原子爆炸,吞噬整个宇宙,同时按下“构建解决方案”或“构建”按钮选项只会提示您继续前进,避免浪费时间问无用的问题:D@netniVOP既有一个类泛型参数
T
,也有一个方法argumet泛型参数。这就是问题的根源
public string GetObject<T>(IEnumerable<T> obj)
{
     return fh.WriteString(obj);
}
public class F<T> where T : class
{
    private FileHelperEngine<T> fh = new FileHelperEngine<T>();
    public string GetObject(IEnumerable<T> obj)
    {
        return fh.WriteString(obj);
    }
}