在C ++中是否存在与访问修饰符区域等效的C#

时间:2009-01-10 15:16:23

标签: c# access-modifiers

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

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

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

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

4 个答案:

答案 0 :(得分:9)

没有。访问权限在每个声明中指定。

这样做的好处是方法在源文件中的位置对行为没有影响。这意味着您可以移动方法和属性(例如,将相关的方法集中在一起)而不受惩罚。字段的相当是真的 - 可以使字段的声明顺序很重要。不可否认,最好不要首先这样做......

答案 1 :(得分:8)

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

答案 2 :(得分:7)

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

protected float bla1, bla2, bla3;

答案 3 :(得分:1)

C#中没有等效的(VB和F#也是如此)。

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

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

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