|
|
1
12
lambda表达式(
在您的案例中,潜在的候选方法表明变量和编译器都不能做出选择。 如果必须保持相同的名称,则调用方必须自己指定类型:
我不认为您可以对其中一个选项使用扩展方法,因为搜索将在类级别停止。因此,真正拥有具有不同名称的方法是唯一真正的选择(如果您需要这两种方法的话)。如果只是考虑
|
|
|
2
8
我相信消除过载混乱的最简单方法是在将输入发送到函数之前对其进行强制转换。这可以隐式(内联)完成,也可以以定义类型化输入(推荐方式)的形式完成,而不是以匿名方式完成。以下是我如何测试它,它在不发出警告的情况下工作。
显然,C编译器不够精确,无法区分两者,因为它需要一些启发式行为,匿名输入本质上是相同的。无论如何,这种解决方法可以解决这个问题。 |
|
|
3
4
问题是,当您编译表达式时,您将使用与第二个相同的签名创建一个方法。 我建议您更改第一个方法的名称 另外,如果要使用表达式,则返回一个IQueryable以利用延迟的执行。 |
|
|
4
4
我换了你的课,解决了问题:
|
|
|
5
4
考虑对这两个方法使用接口继承。根据坚实的原则,您应该避免使用具体类型的引用,而应该通过接口使用抽象。像这样:
现在,根据您的查询方式,您应该使用所需接口类型的变量。现在,每个接口都应该有一个引用,引用同一个repo实例。
但是如果你不能,或者想改变你调用这些方法的方式,那么亚历克赛·列文科夫的回答看起来很好。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 8 月前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 8 月前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 8 月前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 9 月前 |