【问题标题】:Accessibility levels in a single class project单个班级项目中的可访问性级别
【发布时间】:2018-10-25 19:52:19
【问题描述】:

我有一个用 C# 构建的非常简单的实用程序。它只有一个命名空间和一个类。我只是想知道在这种情况下向方法/变量添加可访问性关键字的最佳实践是什么。可以将可访问性关键字留在这里吗?在我看来,添加一个将是徒劳的,但没有一个,这些方法感觉如此“赤裸”。

【问题讨论】:

  • 如果你只有一个类,无障碍关键字不相关,不是吗?有人可能会争辩说,“最佳实践”是在整个代码中保持一致。
  • 请注意,“最佳实践”问题可能被视为题外话:meta.stackexchange.com/questions/142353/…
  • 将它们标记为如果它们在更大的应用程序中将被使用。您永远不知道何时可以将此代码迁移到更大的应用程序中。此外,明确的 6 或 7 个字母,让您自己或其他人不知道您的意图是什么,这似乎是一个很小的代价。
  • @user7396598 - 我认为你写的应该是答案,我赞成它
  • @d219 如你所愿

标签: c# oop


【解决方案1】:

将它们排除在外与最严格的限制相同(因此 private 用于类内,internal 用于命名空间内的类本身)。

从技术上讲,无论您是明确写 private 还是将其省略,都没有区别。作为惯例,更常见的是明确(包括private),养成遵循通用惯例的习惯是件好事,因此值得单独为这件事做。

【讨论】:

    【解决方案2】:

    Leaving off an access modifier when declaring a code element means the compiler will provide a default access level。在您的情况下,类(顶级类型)将为internal,其成员为private。这适用于您不希望被任何其他代码引用的独立实用程序(internal 表示“只有这个程序集(EXE/DLL)可以看到这个”,private 表示“只有声明的类/结构这可以看到这个”)。是否要包含或不包含关键字是风格问题。

    【讨论】:

      【解决方案3】:

      最佳实践通常是这样引用的:

      尽可能限制一切,仅在必要时不限制

      C# 中的默认值是 this

      • 类:内部
      • 班级成员:私人

      除非嵌套,否则私有类很少有用,但没关系。

      现在最后一点是我的意见。代码的可读性和易于理解非常重要,所以我会说最好明确地放入访问级别,即使它们与默认值相同

      【讨论】:

        【解决方案4】:

        标记它们,因为它们将在更大的应用程序中使用。

        您永远不知道何时可以将此代码迁移到更大的应用程序中。

        另外,6 或 7 个字母要明确,不要让你自己或其他人后来想知道你的意图是什么,这似乎是一个很小的代价

        【讨论】:

        • 谢谢。对于我经常做的事情,这是一个特别有用的注释。很好的提醒。
        猜你喜欢
        • 2017-11-05
        • 2010-09-10
        • 2017-06-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 2012-06-19
        相关资源
        最近更新 更多