栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么从扩展类中调用扩展方法需要'this'关键字

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么从扩展类中调用扩展方法需要'this'关键字

几点:

首先, 不需要 提议的功能(在扩展方法调用上隐式的“
this。”)。扩展方法对于LINQ查询理解以我们想要的方式工作是必不可少的。接收者总是在查询中说明,因此不必支持隐式的使LINQ工作。

其次,此功能 更通用的扩展方法设计背道而驰:也就是说,扩展方法 使您可以扩展无法扩展自己的类型
,要么是因为它是一个接口并且您不知道实现,要么是因为您做了知道实现但没有源代码。

如果你是在场景中你使用的扩展方法的类型 该类型中 ,那么你 可以访问源代码。 那么,为什么首先使用扩展方法?
如果您可以访问扩展类型的源代码,则 可以自己编写一个 实例方法
,然后完全不必使用扩展方法!然后,您的实现可以利用对对象的私有状态的访问权限,而扩展方法则不能。

在您可以访问的类型中更轻松地使用扩展方法,鼓励使用扩展方法而不是实例方法。扩展方法很棒,但是如果有实例方法,通常最好使用实例方法。

鉴于这两点,语言设计者不再需要负担解释该功能为何 存在的负担。现在由您来解释为什么 应该这样做
。功能具有巨大的成本。此功能不是必需的,它违背了扩展方法的既定设计目标。我们为什么要承担实施成本?说明此功能启用了哪些引人注目的重要方案,我们将在将来考虑实施。我看不到任何令人信服的重要场景可以证明这一点,但是也许我错过了一个。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421424.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号