小编Jun*_*kol的帖子

从方法签名中删除泛型参数

我的库中有这样的方法

public void Foo<T>(IQueryable<T> input)
{
    //T is never used and the code compiles when I remove T
} 
Run Code Online (Sandbox Code Playgroud)

我想重构它并删除泛型参数.

public void Foo(IQueryable input) { ... }
Run Code Online (Sandbox Code Playgroud)

它如何影响依赖于我的库的代码?他们需要重建吗?
他们遇到编译错误吗?
如果他们使用反射调用此方法怎么办?

如果我创建它们,那么方法解析将始终选择通用的方法.如何在通用版本中使用旧版本并在以后的版本中弃用?

c# generics backwards-compatibility method-resolution-order

5
推荐指数
1
解决办法
69
查看次数