C#と諸々

C#がメインで他もまぁ諸々なブログです
おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`)
つーかコメント欲しい(´・ω・`)

2006/10/08 02:06
C#のコーディング規約。
基本はクラス ライブラリ開発のデザイン ガイドラインに従うとして、それ以外の範囲で俺的な規約。

[ 俺規約 ]
自身のインスタンスメンバには、thisキーワードを必ず付ける。

[ 理由 ]
・自身のインスタンスメンバであることが一目でわかり、可読性が向上する。 ( ローカル変数とインスタンスフィールドを一目で区別できる。静的メソッドとインスタンスメソッドを一目で区別できる。 )
・インテリセンスも利用できるし。
・" this. " というたった5文字を入力することによる手間・冗長化なんてたいした事ない。それよりも可読性の向上、インテリセンスの利用といったメリットの方が遥かに大きい。

[ 補足 ]
同様に、自身の静的メンバには、クラス名を必ず付ける。 なんとなく不自然さを感じるけど我慢。あと、VS2003では、クラス名が変更されたときに自分でちゃんと置換を行わないといけないので注意。 ( まぁ、それは " 自身の " に限らないけど。 )
つーか、自身の静的メンバを参照するためのキーワードがあればいいのにな (´・ω・`;)
2006/09/13 23:40
C#のコーディング規約。
基本はクラス ライブラリ開発のデザイン ガイドラインに従うとして、それ以外の範囲で俺的な規約。

[ 俺規約 ]
フィールドの初期化はフィールドの定義時ではなく全てコンストラクタで行う。

[ 理由 ]
・フィールドの定義と一緒に初期化しても、その後コンストラクタで更に初期化される可能性があるから。(読みづらい上に、無駄。)
・あるフィールドでは定義と一緒に初期化して、あるフィールドでは定義で初期化せずコンストラクタで初期化してじゃ読みづらい。

[ 補足 ]
静的フィールドも同様に静的コンストラクタで初期化する。
静的フィールドは、定義時に初期化し、静的コンストラクタを明示的に宣言しないこと。
詳細はこちらの記事を参照。