【问题标题】:Is there a C# equivalent to access-modifier regions in C++是否存在与 C++ 中的访问修饰符区域等效的 C#
【发布时间】:2010-09-30 16:09:32
【问题描述】:

可以在 C++ 中使用以下结构声明变量

private:
public:
protected:
    float bla1;
    float bla2;
    float bla3;

C# 中是否有等价物?重复自己似乎相当乏味;

protected float bla1;
protected float bla2;
protected float bla3;

【问题讨论】:

    标签: c# access-modifiers


    【解决方案1】:

    没有。每个声明都指定了访问权限。

    这样做的好处是方法在源文件中的位置对行为没有影响。这意味着您可以随意移动方法和属性(例如,将相关方法聚集在一起)而不受惩罚。字段的相当并非如此 - 可以使字段的声明顺序很重要。诚然,最好一开始就不要这样做……

    【讨论】:

    • 好点。在合并文件的不同版本进行签入时,此功能非常有用。
    【解决方案2】:

    不,没有这样的事情。事实上,它的设计目的就是让代码更具可读性。这适用于 C# 和 Java。

    【讨论】:

      【解决方案3】:

      值得注意的是,如果你有多个相同类型的成员,你可以将它们声明为:

      protected float bla1, bla2, bla3;
      

      【讨论】:

        【解决方案4】:

        不,在 C# 中没有等价物(VB 和 F# 也是如此)。

        我个人喜欢这种差异。我在一个非常大的 C++ 代码库中工作,没有办法查看特定方法并知道它的特殊可访问性。一些类变得如此之大,以至于需要大量的页面滚动才能看到修饰符。

        一些程序员可能认为这还不错,但考虑一下当人们开始在类中间混合 #if 定义并在这些 #if 中添加修饰符时会发生什么。它使在代码审查期间确定访问修饰符成为一项重要的操作。

        内联添加修饰符是一个小的打字牺牲,但在长期可读性方面是值得的。

        【讨论】:

          猜你喜欢
          • 2016-07-26
          • 2015-04-11
          • 2023-03-05
          • 1970-01-01
          • 2018-03-06
          • 2011-04-10
          • 2014-05-22
          • 2011-02-01
          相关资源
          最近更新 更多