是否可能设置方法返回类型,类似于泛型类?
我有通用类:
class Generic<T>
{
public static DataSet test(T input)
{
//Some logic...
}
}
另一个类,我称之为泛型类。
适用于这个例子:
Generic<int>.test(10);
但是,如果我想调用不同的方法,使用复杂的未知日期类型,我不知道我如何将它们的日期类型设置为Generic Type。
例如
var data = Data.GetData(); // return List<string,int>
var data2 = Data.GetData2() // return Tuple<List<string>, List<int>>
我尝试使用方法GetType,获取返回方法类型,类似这样,但它不起作用。
Generic<data.GetType()>.test(data);
有可能吗,这样吗?
答案 0 :(得分:2)
不,您无法在没有反射的情况下在运行时指定泛型类型,但可能还有其他方法可以解决您的问题。你可以将泛型约束放在方法而不是类上:
class Generic
{
public static dynamic Test<T>(T input)
{
//Some logic...
}
}
然后可以从输入类型推断:
Generic.Test(data);
答案 1 :(得分:0)
返回函数的类型在编译时已知。 因此,如果我正确地理解了您的问题,那么您所要求的是不可能的。 TL; DR您无法在运行时设置返回类型。