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 定義を混ぜ始め、それらの #if 内に修飾子を追加し始めるとどうなるかを考えてみてください。コードレビュー中にアクセス修飾子を決定することは、重要な操作になります。

修飾子をインラインで追加することは小さなタイピングの犠牲ですが、長期的な読みやすさという点では価値があります。

于 2009-01-10T15:25:55.523 に答える