私は、c#コーディング規則と命名ガイドライン( C#コーディング規則と命名ガイドライン)、および数か月前からのスタックオーバーフローに関する同様の質問に対処するいくつかのmsdn記事を調べました。
[概念的に]同じデータを異なるタイプで保持する、スコープ内にある2つの変数を同時に処理する方法がわかりません。
この問題を説明するのに役立つ例は、最初は文字列として保持されていたが、その後整数にキャスト/解析される識別子です。
私は3つの可能な行動方針を考え出しました、そして私はもっともらしい選択肢を逃したと確信しています。
COA#1:
int iRecordId;
string sRecordId;
変数の一方または両方が型の省略形の前に付く場合。これは、パラメータ名の前にハンガリー語の型表記を付けないというMSコーディングガイドラインに違反しています。
COA#2:
int recordId;
string recordIdString;
変数の一方または両方が名前のタイプを明示的に示している場合。これは不格好なようで、ハンガリアン記法を使用していませんが、以前のCOAの精神に違反しているようです。
COA#3:
int recordIdForDatabase;
string recordIdFromUrl;
各変数は、データがどこから来たのか、どこに行くのかによってさらに修飾されます。
提案
私の考えでは、最終的には型によってのみ異なる2つの変数を区別したいので、変数に型情報を接頭辞として付けないことを明示的に示すガイドラインがありますが、私はハンガリー語の接頭辞を使用することに傾倒しています。コードの残りの部分の命名規則とはまったく対照的であるため、酌量すべき状況を浮き彫りにするようです。これは合理的なアプローチですか?
質問、コメント、怒りの叫びはすべて歓迎されます。