質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

Q&A

解決済

4回答

1805閲覧

C#の命名慣習について

search_search

総合スコア187

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

0グッド

0クリップ

投稿2016/10/01 20:03

編集2016/10/01 20:06

MicoroSoft社から発表されているC#の命名慣習を見ると、パラメータ以外はPascalケースで書くこととなっています。
https://msdn.microsoft.com/en-us/library/ms229043(v=vs.110).aspx
(日本語版は機械翻訳されていて意味が読み取れないので英語のページになります。)

この命名慣習に従うと自分の中である問題が生じてしまいます。

Hoge型をメンバ変数として宣言するとき、その変数名は型名から取って簡潔に表したいです。したがってHogeになります。

しかし、そうすると型名と変数名が同じになってしまいます。コンパイラは頭がよいのでコード中のHogeが型名なのか変数名なのか可能な限り推定してくれますが、人間としては読みづらいことこの上ありません。

この問題に関して、ネット検索を多くしましたが、話題にもなっていませんでした。困っているのは私だけのようで・・・。
皆さまはこの問題をどのように回避していらっしゃるのでしょうか?
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

MSDN自身がその命名規約に従っていません。
こちらのC# プログラミング ガイドではフィールドがキャメルケースになっています。

https://msdn.microsoft.com/ja-jp/library/ms173118.aspx

public class CalendarEntry { // private field private DateTime date; // public field (Generally not recommended.) public string day;

他のマイクロソフト、非マイクロソフトのプロジェクトを見ていてもフィールドがパスカルケースになっているものは少ないように思います。キャメルケースか_hogeのようにアンダースコアをつけるのが多いような。

投稿2016/10/02 03:08

vc3000

総合スコア196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

変数に関しての記述が無いようですが、一般的には引数と同様にcamelCasingで記述します。

また、読みやすさのためにthis.Hoge = hoge;というようにthisで装飾して変数と区別するコーディングスタイルの人もいます。

投稿2016/10/02 04:39

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Hoge型をメンバ変数として宣言するとき、
その変数名は(メンバを持つ側から見て)どういう関係なのか簡潔に表します。

どうしてもかぶる場合(Colorとかありがち)は
実際それほど読みづらく思っていないのでそのままですかね。
this.Color = Color.Redで別にいいかなって。

m_などプリフィックスはC#的にはあまり見ないので避けます。

投稿2016/10/02 00:50

ozwk

総合スコア13512

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

日本語版は機械翻訳されていて意味が読み取れないので英語のページになります。

current version は機械翻訳ですが、.NET 4 / VS2010 は翻訳者の手が入っているのでそちらを読むことをお勧めします。

https://msdn.microsoft.com/ja-jp/library/ms229043(v=vs.100).aspx

皆さまはこの問題をどのように回避していらっしゃるのでしょうか?

質問者さんが組織に属して開発を行っているなら、その組織で問題(?)を回避できるよう別のルールを作るということになるかと思いますが。

個人で開発を行っていて、他人が開発や保守にかかわることがなければ、質問者さんが独自に問題を回避できるルールを決めればいいのではないでしょうか?

投稿2016/10/02 00:49

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問