C# 方法返回类型类似于泛型类类型

C# 方法返回类型类似于泛型类类型,c#,generics,C#,Generics,是否可以设置方法返回类型,如泛型类的类型 我有一门普通课: class Generic<T> { public static DataSet test(T input) { //Some logic... } } 类泛型 { 公共静态数据集测试(T输入) { //一些逻辑。。。 } } 另一个类,我称之为泛型类 它适用于以下示例: Generic<int>.test(10);

是否可以设置方法返回类型,如泛型类的类型

我有一门普通课:

    class Generic<T>
    {
        public static DataSet test(T input)
        {
         //Some logic...
        }
    }
类泛型
{
公共静态数据集测试(T输入)
{
//一些逻辑。。。
}
}
另一个类,我称之为泛型类

它适用于以下示例:

Generic<int>.test(10);
Generic.test(10);
但如果我想用复杂的未知日期类型调用不同的方法,我不知道如何像泛型类型一样放置它们的日期类型

比如说

var data = Data.GetData(); // return List<string,int>
var data2 = Data.GetData2() // return Tuple<List<string>, List<int>>
var data=data.GetData();//返回列表
var data2=Data.GetData2()//返回元组
我尝试使用方法GetType,对于get返回方法类型,类似这样的,但它不起作用

Generic<data.GetType()>.test(data);
Generic.test(数据);

是否可能,类似这样的情况?

函数的返回类型在编译时已知。
因此,如果我正确理解了你的问题,你的要求是不可能的TL;DR您不能在运行时设置返回类型。

函数的返回类型在编译时已知。
因此,如果我正确理解了你的问题,你的要求是不可能的TL;DR您不能在运行时设置返回类型。

不,您不能在运行时指定泛型类型而不进行反射,但可能有其他方法来解决您的问题。您可以将泛型约束放在方法上,而不是类上:

class Generic
{
    public static dynamic Test<T>(T input)
    {
     //Some logic...
    }
}

不,您不能在没有反射的情况下在运行时指定泛型类型,但是可能有其他方法来解决您的问题。您可以将泛型约束放在方法上,而不是类上:

class Generic
{
    public static dynamic Test<T>(T input)
    {
     //Some logic...
    }
}

test
将如何处理
T
您对它没有任何限制,也不将它用于返回类型。为什么不让这个类成为非泛型的,只做
动态测试(对象输入)
测试(T输入)
在最后我想把这个结果列表,元组转换成数据集,我把它放在这里只是泛型的,但我想返回数据集。你能不能从使用泛型类改成泛型方法?所以您改为使用
测试(T输入)
?很难说你的泛型类和方法实际上在做什么……用
T
测试
会做什么?你对它没有任何限制,也不使用它作为返回类型。为什么不让这个类成为非泛型的,只做
动态测试(对象输入)
测试(T输入)
在最后我想把这个结果列表,元组转换成数据集,我把它放在这里只是泛型的,但我想返回数据集。你能不能从使用泛型类改成泛型方法?所以您改为使用
测试(T输入)
?很难说你的泛型类和方法实际上在做什么…哦,就是这样。我是泛型类型的新手,我想,当我想使用泛型方法时,我必须有一个泛型类。谢谢。@tomas Nope-只有当您希望泛型类型应用于整个类时才可以。哦,就是这样。我是泛型类型的新手,我想,当我想使用泛型方法时,我必须有一个泛型类。谢谢。@tomas Nope-仅当您希望泛型类型应用于整个类时。