gpt4 book ai didi

c# - 在 C# 中将单个属性包装在 #region 中是否有充分的理由?

转载 作者:太空狗 更新时间:2023-10-29 21:10:25 24 4
gpt4 key购买 nike

我最近继承了一些 C# 代码,其中几乎文件中的每个项目都包装在一个单独的#region/#endregion block 中——每个类、每个函数、每个属性、每个枚举,但不包括字段。这些中的每一个依次包含在一个“分组”#region 中(例如“Properties”、“Constructor”、“Methods”等)。单个函数有多个具有不同参数列表的重载,但它们每个都包装在具有相同名称的单独区域中,而不是所有三个重载的单个区域。编写此代码的人已不在公司,并且从源代码控制的历史来看,这些似乎出现在初始提交中,并且随着新属性和方法的添加,这种做法在代码的后续版本中继续存在。

知道为什么要这样做吗?一些想法:

  1. 过度热心的 VS 功能(或代码清理工具)自动插入了#region/#endregion block ,而作者没有删除它们。
  2. 有一个 IDE 可以折叠区域而不是函数,所以这是实现语法折叠所必需的。
  3. 这是一种在实现代码之前将代码结构 stub 的方法。

编辑: 我选择了 Jonathan 的回答,因为它提供了一个新的理由,说明为什么有人可能会选择这样做。感谢讨论!

最佳答案

这似乎是开发人员不了解如何有效使用 IDE(即:方法的代码折叠、使用编辑器中的导航功能等)的结果。我个人会删除大部分(全部?)这些区域,因为它们实际上在很多方面对你不利。

在区域中包装事物确实有其用武之地,但我认为,作为一般做法,它实际上常常适得其反。它隐藏了代码——我经常发现这让开发人员更容易留下不合适的代码,错过好的重构机会,允许复杂的方法(应该被拆分)随着时间的推移逐渐出现,并让类型变得太大。

话虽这么说 - 区域是一项功能,是否使用它们以及使用多少完全取决于个人喜好,因为它们对编译代码没有影响。

关于c# - 在 C# 中将单个属性包装在 #region 中是否有充分的理由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110509/

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