gpt4 book ai didi

c# - 扩展方法是否应该仅用于您无权访问其代码的类?

转载 作者:行者123 更新时间:2023-11-30 20:08:43 24 4
gpt4 key购买 nike

扩展方法是否应该仅用于您无权访问其代码的类?

我正在努力想出一个理由来使用扩展方法,而不是将其部分化并在外部文件中添加类。

我的具体场景如下:我有一些类通过 EF 表示数据库中的实体。我正在辩论使它呈现部分的类并添加我自己的方法。扩展方法是更有效的替代方法还是当您有权访问要扩展的类的代码时不打算使用它们?

最佳答案

典型的反例是接口(interface)上的扩展方法,因为即使您控制了源代码,也没有实现。请参阅:Linq。

但是,是的,一般来说,如果您控制了具体类的源代码,那么期望将功能直接添加到类而不是使用扩展方法并不是不合理的,如果功能实际上有意义的话成为类实例的一部分。

另一方面,回到您的情况,您可能不考虑这两种方法。您的实体是数据模型,我不会向这些模型添加方法,而是将该功能封装在别处。这些模型的存在是为了封装您的数据,可能与该数据一起运行或针对该数据运行的逻辑可能在不同的单元中得到更好的服务。但这实际上取决于您的方法在做什么,并且还假设它们不是例如对一个或多个属性的简单包装。

关于c# - 扩展方法是否应该仅用于您无权访问其代码的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6825095/

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