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

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

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

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

Q&A

解決済

7回答

2814閲覧

C#の命名規則について

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

0グッド

0クリップ

投稿2018/10/04 10:15

C#の変数等の命名規則、コーディング規約について質問です。
調べたところC#はパラメータ(ローカル変数も?)以外は全てパスカルケースを用いるとありました。

ですが実際のところキャメルケースを用いてもスネークケースを用いても問題なくコンパイルできてしまい動作にも問題ありません。

これは何らかの理由があり、パスカルケースを用いることが望ましいけど、別に他の記法でもいいよという意味なのでしょうか?

当方javaでの書き方にかなり慣れてしまい、できればキャメル記法で書きたいのですが、やはり正しいコーディングがしたいので質問した次第でございます。

またパスカルケースは、変数を一文字にする時(例えばforで用いる変数iなど)は大文字にしないですよね?
for (int I = 0;...) など見たことがありません(笑)

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

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

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

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

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

guest

回答7

0

コーディング規約はあくまで指針ですので、ご自由にされて問題はありません。

VisualStudioのオプションに下記画面の設定があります。
オプション画面
ここでコーディングルールについての設定ができます。
この画面にて重要度をエラーにすればコンパイルでエラーが発生する状態になりますが、デフォルトでは提案事項となっていますので、問題なくコンパイルできます。

投稿2018/10/04 10:31

YAmaGNZ

総合スコア10258

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

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

0

個人の趣味でプログラミングをしているなら、文法違反とならない範囲で、あなたの好きなようにすればいいと思います。

あなたの属する組織にルールがあればそれに従うのみです。

ただ、識別子名に日本語を使うのは、それが完全に問題ないと確認できないのなら、止めるべきだと思います。個人的意見ですが、詳しくは以下の記事を見てください。

識別子名に日本語
http://surferonwww.info/BlogEngine/post/2015/03/17/japanese-name-for-identifiers-such-as-variables-methods-and-properties.aspx

投稿2018/10/04 10:37

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

コーディング規約が無い開発では.NET Frameworkの名前付けガイドラインに従うと良いと思います。
C#を使う開発者は.Net Frameworkのクラスライブラリを使用しているため可読性が高いです。

▼識別子の種類に応じた大文字と小文字の使い分け規約

識別子記法
名前空間パスカルnamespace System.Security { … }
パスカルpublic class StreamReader { … }
インターフェイスパスカルpublic interface IEnumerable { … }
メソッドパスカルpublic Class Object { public string ToString(); }
プロパティパスカルpublic class String { public int Length { get; } }
イベントパスカルpublic class Process { public event EventHandler Exited; }
フィールドパスカルpublic class UInt32 { public const UInt32 Min = 0 }
列挙値パスカルpublic enum FileMode { Append, … }
パラメータキャメルpublic class Convert { public static int ToInt32(string value); }

投稿2018/10/06 04:50

kaneko.m

総合スコア31

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

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

0

ベストアンサー

私もC#を始めてしばらくはパスカルケースのメソッド等に違和感を感じていました。
それで別にキャメルでもいいじゃんって感じで無視していたのですが、後から激しく後悔しました。
「コーディング規則の目的」は読んでいたのですが軽く考えていたのです。
以下引用

・コードの見た目が統一されるため、コードを読むときに、レイアウトではなく内容に重点を置くことができます。
・これにより、経験に基づいて推測することで、コードをより迅速に理解することができます。
・コードのコピー、変更、および保守が容易になります。
・コーディング規約により、C# のベスト プラクティスがわかります。

以上引用

当時のコードは殆ど処分又はリファクタリングしましたが、まれに残ったコードを掘り出すと赤面の思いです。
C#でキャメルケースを使うのはローカル変数とプライベートフィールド変数ぐらいなので早めに慣れることをお勧めします。

投稿2018/10/06 03:06

hihijiji

総合スコア4150

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

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

0

ですが実際のところキャメルケースを用いてもスネークケースを用いても問題なくコンパイルできてしまい動作にも問題ありません。

コンパイルできる事と、コーディング規約は別です。予約語でないとか、識別子のルールに一致する(正確な規約が確認できなかった)限り、コンパイルはできます。
コーディング規約は、こう書いた方が良いとかの規約で、職場とか、開発チームで決めるものです。

SurferOnWwwさんの書かれたように、

個人の趣味でプログラミングをしているなら、文法違反とならない範囲で、あなたの好きなようにすればいいと思います。

と思います。ただ、他の人に助けを乞う場合、理解して貰いにくい事があるかもしれません。

投稿2018/10/04 13:30

pepperleaf

総合スコア6383

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

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

0

規約でもローカル変数やプライベート変数はキャメルケースですよ

規約であり約束なので、共同作業者と相談したほうがいいと思います。みんながjavaになれているならそれでいいでしょうが、特定少数がそうならあわせるべき。

自分がなれた方法が早い、という考え方はコーディング規約の存在意義と合わないので、そもそも規約を無視してideの警告をオフにすればいいと思います

投稿2018/10/04 10:30

papinianus

総合スコア12705

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

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

0

あなたの好きなように記述しましょう
コーディング規約というのはあくまで約束事でしかありません。

投稿2018/10/04 10:18

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問