可以在 C++ 中使用以下结构声明变量
private:
public:
protected:
float bla1;
float bla2;
float bla3;
C#中是否有等价物?不得不重复自己似乎相当乏味;
protected float bla1;
protected float bla2;
protected float bla3;
可以在 C++ 中使用以下结构声明变量
private:
public:
protected:
float bla1;
float bla2;
float bla3;
C#中是否有等价物?不得不重复自己似乎相当乏味;
protected float bla1;
protected float bla2;
protected float bla3;
不可以。每个声明都指定了访问权限。
这样做的好处是方法在源文件中的位置对行为没有影响。这意味着您可以随意移动方法和属性(例如,将相关方法聚集在一起)而不受惩罚。字段的情况并非如此- 可以使字段的声明顺序很重要。诚然,最好不要一开始就这样做......
不,没有这样的事情。事实上,它的设计目的就是让代码更具可读性。这适用于 C# 和 Java。
值得注意的是,如果你有多个相同类型的成员,你可以将它们声明为:
protected float bla1, bla2, bla3;
不,C# 中没有等价物(VB 和 F# 也是如此)。
我个人喜欢这种差异。我在一个非常大的 C++ 代码库中工作,没有办法查看特定方法并知道它的特殊可访问性。有些类变得如此之大,以至于需要大量的页面滚动才能看到修饰符。
一些程序员可能认为这还不错,但考虑一下当人们开始在类中间混合#if defs 并在这些#if 中添加修饰符时会发生什么。它使在代码审查期间确定访问修饰符成为一项重要的操作。
内联添加修饰符是一个小的打字牺牲,但在长期可读性方面是值得的。