只是想知道 C# 如何确定方法重载中对象的执行顺序 例如我有一个方法
bool SomeMethod(IQueryable source)
{
//.... Do Work
}
bool SomeMethod(IEnumerable source)
{
//.... Do Work
}
var Obj = Db.Table.Where(ID > 5);
SomeMethod(Obj);
当我运行此代码时,代码转到 IQueryable 重载,现在是因为我首先声明了 IQueryable,是因为 IQueryable 是 IEnumerable 类型还是有其他一些潜在原因?
-谢谢
最佳答案
有一个更好的算法(C# 规范的第 7.4.3 节)用于在存在多个适用重载的情况下决定使用哪个方法重载。在这种情况下,IQueryable
可以隐式转换为 IEnumerable
,但是 IEnumerable
不能隐式转换为 IQueryable
,使 IQueryable
成为“更好的”重载。
关于c# - C#中重载函数的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26495698/