C#中重载函数的执行顺序

约翰尼5

只是想知道C#如何确定方法重载中对象的执行顺序例如,我有一个方法

bool SomeMethod(IQueryable source)
{
  //.... Do Work
}

bool SomeMethod(IEnumerable source)
{
   //.... Do Work
}

var Obj = Db.Table.Where(ID > 5);

SomeMethod(Obj);

当我运行此代码时,代码转到IQueryable重载,现在是因为我声明了IQueryable First,是因为IQueryable的类型为IEnumerable还是有其他根本原因?

-谢谢

务实的

有一个更好的算法(C#规范的7.4.3节),用于确定在有多个适用的重载的情况下使用哪种方法重载。在这种情况下,anIQueryable可以隐式转换为an IEnumerable,但anIEnumerable不能隐式转换为an IQueryable,从而IQueryable使“更好”的重载。

另请参见
7.4.2.3更好的转换

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章