Oracleの公式なJavaプログラミング言語のコード規約 と.NET Framework デザインガイドラインに示す C# の命名規約をまとめてみました。
| 種類 | Java | C#(.NET) |
|---|---|---|
| クラス | Pascal | Pascal |
| インタフェース | Pascal(例:List) | “I” + Pascal(例:IList) |
| パッケージ / ネームスペース | Camel(例:java.net) | Pascal(例:System.Net) |
| メソッド | Camel(例:toString()) | Pascal(例:ToString()) |
| ローカル変数 | Camel | Camel |
| メンバ変数 | Camel(例:Calendar.isTime) | Pascal(例:Calendar.IsReadOnly) |
| 定数 | Snake(例:Integer.MAX_VALUE) | Pascal(例:Int32.MaxValue) |
| 列挙定数 | Snake(例:State.RUNNABLE) | Pascal(例:ThreadState.Running) |
- CamelCase
- 最初の単語はすべて小文字。それ以降の単語は頭だけ大文字、頭以外は小文字。例:fooBar
- PascalCase
- 単語の頭は大文字、頭以外は小文字。例:FooBar
- SnakeCase
- すべての単語は大文字。単語と単語の間にアンダースコアを挿入。例:FOO_BAR
Java では、package キーワードを使ってクラスをグループ化できます。パッケージ化されたクラスは、ソース ファイルの最初の実行可能な行で package キーワードを使用する必要があります。この行の後に、他のパッケージのクラスへのアクセスに必要な import ステートメントとクラス宣言が次のように続きます。
package Acme;
import java.io.*;
class Customer
{
...
}
C# では、名前空間という概念を使用して、論理的に関連するクラスを namespace キーワードでグループ化します。これらのクラスは、Java のパッケージと同じように機能し、同じ名前のクラスが 2 つの別々の名前空間に表示されることがあります。現在の名前空間の外部の名前空間で定義されたクラスにアクセスするには、using ディレクティブと名前空間の名前を次のように使用します。
using System.IO;
namespace Acme
{
class Customer
{
...
}
}
using ディレクティブは、名前空間の宣言の中に配置できますが、その場合、インポートされる名前空間は、それを格納する名前空間の一部になります。
ソース ファイルの名前付け規則 (C# と Java の比較)
http://msdn.microsoft.com/ja-jp/library/ms228500%28v=vs.90%29.aspx