gpt4 book ai didi

c# - 为什么扩展方法只允许在非嵌套、非泛型静态类中使用?

转载 作者:太空宇宙 更新时间:2023-11-03 15:39:00 24 4
gpt4 key购买 nike

为什么扩展方法只允许在非嵌套、非泛型静态类中使用?在嵌套的泛型静态类中考虑扩展方法是否没有用?

最佳答案

Why are extension methods only allowed in non-nested, non-generic static class?

正如 Pratik 指出的那样,我们面临的问题不是“为什么扩展方法不允许在嵌套类或泛型类中被允许?”作为语言设计者,我们面临的问题是“为什么应该在嵌套类或泛型类中允许扩展方法?”

除非某些实际用户需求证明该功能是合理的,否则我们不会承担设计、实现、测试、记录和维护该功能的大量成本。

基本上,扩展方法旨在使 LINQ 正常工作。任何对 LINQ 工作没有贡献的东西都被删掉了。 LINQ 只需要静态、非泛型、非嵌套类中的扩展方法即可工作,这就是我们设计和实现的。

如果您遇到扩展方法在非静态类、通用类或嵌套类中很有用的场景,那么我很乐意查看该场景。我们获得的真实场景越多,我们就越有可能在某种假设的 future 语言中创建一个有利于这些场景的功能。

Is it useless to consider extension methods in nested, generic static class?

不,考虑一下是个好主意。不考虑就是失职。我们仔细考虑了很长时间,并决定基于这种考虑,实现该功能的成本与所产生的 yield 不相称。

关于c# - 为什么扩展方法只允许在非嵌套、非泛型静态类中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30860809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com