QLOOK ANALYTICS
caferatnica.JP トップへ移動
プログラミング プログラム コーディング コード 命名規則 命名規約 ネーミング C# Java VB NET Framework 設計
Home > programming > namingConventions

C# naming conventions

私が実践するコーディング命名規則

私が実践している命名規則を紹介します。
ただの名前されど良いコードを書くにはとても重要な事柄です。
ちょっと大げさですが 名前に始まり名前に終わる というぐらいに私は思っています。

はじめに例として私の命名規則を適用させた簡単なコードを紹介します。

namespace Caferatnica.Libraries.Tests
{
    public class CodingStyle
    {
        public String Name
        {
            get { return _name; }
            set { _name = value; }
        }
        private String _name = null;

        public void Accept( Object anObject )
        {
            if( anObject == null )
            {
                throw new ArgumentNullException"anObject" );
            }
        }
        public void Accept( String[] someArguments )
        {
        }
    }
}            

名前空間

Caferatnica.Applications.Name、Caferatnica.JP.Libraries 等。
まずソフトウェアを配布する元の URL、または制作者の名前またはハンドルネーム、続いて DLL の種類を表す名前( Applications や 共通のライブラリであれば Libraries、Libraries.UI 等 ) をつけ、ファイル名も同じようにします( Caferatnica.Libraries.dll 等 )。
例外として実行ファイルは ApplicationName.exe などというように名前空間を含めないようにします。

クラス

CodingStyle、UserAccount 等。
Pascal形式。

テストクラス

UserAccountTester、CommandTester 等。
Pascal形式。テストメソッドは TestAccept、TestBinding 等。

インターフェイス

ICommand、IOperation 等。
頭にインターフェイスを表す I をつける。Pascal形式。

抽象クラス

AbstractCommand、CommandBase、Command 等。
最近は ~Base パターンをよく使います。

列挙型

WindowShowKind 等。
種類を表す ~Kind とすることが多いです。

メソッド

Accept、CreateCommand等。
Pascal形式。別のアイデアとしてプライベートなものは createCommand 等の Camel形式

プロパティ

UserName、HasItem、IsEmpty 等。
Pascal形式。

フィールド

_userName、myTextBox 等。
私の場合 Control型から派生したものはデザイナからイベントを生成する際にメソッドの名前になる事から _~ ではなく my~ としています。

引数

anObject、aText、someItems 等。
普通単純に単語を Camel 形式にするところですが、ローカル変数やプロパティの名前とバッティングすることが時折あるので、
私の場合、an、a、some~ として区別しています。
こうすることでソースコード内でローカル変数やプロパティではなく引数であることもわかり特におすすめのパターンです。

ローカル変数

userName、text、items、isProcessing 等。
Camel形式。また FileSystemWatcher というような比較的長い名前を持つものは fsw のように意味を持たない略し方をせず、watcher のようにします。
















Home > programming > namingConventions