前回までは「パスカル」と「キャメル」のどちらを使うかという解説をしてきました。今回は「略語」に関して解説していきます。
2文字の略語は大文字にする
「2文字の略語は大文字にする」というルールがあります。略語とは「Data base」を略して「DB」といった感じのやつです。一般的によく使う「IP」なども「Internet Protocol」の略語です。C#の命名ガイドラインでは,こういった略語について定義しています。
基本的に「単語の頭文字をとった2文字の略語は大文字にする」というルールがあります。単語の頭文字をとった略語は前述した「DB」や「IP」です。さらに2文字の時のみ両方の文字を大文字にします。ややこしいですよね。略した結果2文字になるものは2文字とも大文字。略した結果が3文字以上になるものは1文字目だけが大文字になります。ですので「Transmission Control Protocol」を略して「Tcp」の場合は「T」だけが大文字で「Tcp」となります。「SQL」は「Structured Query Language」の略ですが,C#の各クラスを見ると「Sql」になっていることが確認できます。「SqlConnection」や「SqlCommand」という.NETクラスライブラリのクラス名を見れば確認できます。「DB」や「IP」は2文字なので両方大文字です。
なぜこんなルールになっているかは分かりませんが,こういうルールになっています。
2文字の場合
Internet Protocol
→IP
No good
→NG
3文字の場合
Transmission Control Protocol
→Tcp
Structured Query Language
→Sql
例外
2文字だけど1文字目だけ大文字で,2文字目が小文字になっているパターンがあります。
それは「Id」と「Ok」です。
この2つは例外です。学生の試験問題のように例外として覚えてください。2文字目が小文字の理由は,単語の頭文字ではなく,単語の先頭2文字を採っているからです。
「Id」は「Identifier」の略で,先頭の2文字を採っています。
「Ok」も「Okey」の略で先頭の2文字を採っています。そういった理由で単語の頭文字ではないため,2文字目は小文字になっています。
基本的に例外はこの2つです。「NG」が両方大文字なのに「Ok」は2文字目小文字ってちょっと納得いかない気がしますが,そういう物として受け止めてください。
例
2文字の略語が大文字になっている例をC#のクラスから確かめてみましょう。「System.IO」の「IO」は両方大文字ですね。InputとOutputの略です。「System.Net.IPAddress」の「I」と「P」の部分が大文字になっていますね。
3文字の物だと次のようなものがあります。
「System.Net.Sockets.TcpClient」の場合は「Tcp」が1文字目だけ大文字になっているのが分かります。あとは前述した「SQL」関連ですね。「SqlConnection」や「SqlCommand」などを見ると,「SQL」の1文字目だけが大文字になっているのが確認できます。
#02_名前の付け方
#03_名前付けのガイドライン
#04_パスカルケースとキャメルケース
#05_パスカルとキャメルの内訳
#06_パスカルとキャメルの実演
#07_2文字の略語は大文字にする
#08_名前空間のガイドライン
#09_ローカルルールについて
#10_private変数にアンダーバーを付ける
#11_コントロールの名付け
#12_クラス名とファイル名の名づけ
#13_StyleCopAnalyzersについて
#14_StyleCopAnalyzersのインストール
#15_ネームスペースの調整
#16_SA0001_プロパティのビルドのXMLでファイルを指定しておくと消える
#17_CS1591_XMLコメントなし
#18_SA1101_thisが付いていない
#19_不要なルールを非表示にする方法
#20_SA1200_usingの場所
#21_SA1400_アクセス修飾子が明示的に定義されていない
#22_その他不要なルールを非表示
#23_コンストラクタとデストラクタを作成
#24_Private変数とパラメータ変数の命名
#25_中括弧の省略禁止と改行
#26_コメントはスラッシュ4つ
#27_プロパティのXMLコメント
#28_コンストラクタやプロパティの書く順番
#29_アクセスレベルを加味した書く順番
#30_インタフェースのIとファイル名の不一致
#31_最後に