3

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

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

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

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

4 回答 4

9

不可以。每个声明都指定了访问权限。

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

于 2009-01-10T15:23:20.643 回答
8

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

于 2009-01-10T15:17:45.600 回答
7

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

protected float bla1, bla2, bla3;
于 2009-01-10T15:20:06.267 回答
1

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

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

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

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

于 2009-01-10T15:25:55.523 回答