Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用泛型签名和参数调用方法_C# - Fatal编程技术网

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)