C# 使用泛型签名和参数调用方法
我有以下签名,其泛型类型和参数如下:C# 使用泛型签名和参数调用方法,c#,C#,我有以下签名,其泛型类型和参数如下: List<T> GetMyList<T>(T filter); 列表GetMyList(T过滤器); 筛选器类型与列表类型不同。我试着这样打电话: var myList = repo.GetMyList<List<items>>(filter); var myList=repo.GetMyList(过滤器); 我不确定如何在方法调用中指定“筛选器”的类型。这可能吗?如果类型不同,则需要有2个泛型类型,如
List<T> GetMyList<T>(T filter);
列表GetMyList(T过滤器);
筛选器类型与列表类型不同。我试着这样打电话:
var myList = repo.GetMyList<List<items>>(filter);
var myList=repo.GetMyList(过滤器);
我不确定如何在方法调用中指定“筛选器”的类型。这可能吗?如果类型不同,则需要有2个泛型类型,如下所示:
public List<T1> GetMyList<T1, T2>(T2 filter);
公共列表GetMyList(T2过滤器);
如果类型不同,则需要有两种通用类型,如下所示:
public List<T1> GetMyList<T1, T2>(T2 filter);
公共列表GetMyList(T2过滤器);
你是什么意思?传递到方法中的任何类型都将为方法定义它,因此您只需调用repo.GetMyList(filter)
,而T
将是filter
参数的任何类型。您不能-函数接受T
类型的过滤器,并返回T
类型的列表。这是没有办法的。如果你更详细地解释了这个问题,也许可以确定一个解决方案,但是你所问的问题在这个签名下是不可能的代码>?你能改变它的签名吗?什么意思?传递到方法中的任何类型都将为方法定义它,因此您只需调用repo.GetMyList(filter)
,而T
将是filter
参数的任何类型。您不能-函数接受T
类型的过滤器,并返回T
类型的列表。这是没有办法的。如果你更详细地解释了这个问题,也许可以确定一个解决方案,但是你所问的问题在这个签名下是不可能的代码>?你能改一下签名吗?谢谢。我使用了var myList=repo.GetMyList(filter)代码>谢谢。我使用了var myList=repo.GetMyList(filter)代码>