Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

C#でsnake_caseはあまり一般的じゃない?

業界でよく使われる命名規則

ゲームやアプリケーション開発業界ではCamel Caseが一般的だと思われるのですが、私はSnakeCaseの方が個人的に読みやすいと思っています。

例:ffmpeg_thread 的な

snake_caseはあまり一般的ではないのでしょうか。

フィールド変数の接頭辞に_を付けるものと混同するわけじゃなさそうなのですが、一通りの開発経験がある方にお伺いしたいです。

あまり推奨されないような話は聞いたような気もするのですが、Microsoftのプロジェクトでもない限り関係ないのでは

1 likes

5Answer

質問者さんが組織に属して組織の一員としてコーディングを行っているのであれば、組織のコーディングルールに従う、ルールがなければ話し合ってルールを作ってそれに従うという話になると思います。

質問者さんが個人で仕事をしていて、保守にも他人が関わることはないなら、質問者さんの好みで決めればいいことです。

そういう話はちょっと置いといて、私の個人的な好みを聞きたいということであれば (そんなの聞きたくないとは思いますが)、変数名は camelCase、メソッド・プロパティ名は PascalCase です。

昔々、C 言語の勉強を始めたころは「伝統的に、C では変数名は小文字で書き、記号定数にはすべて大文字を使っている」ということでそうしてた時代もありましたが。

まぁ、個人的な好みはいろいろあると思いますので(極端な話、日本語変数名を支持している方の意見とか)、聞いても参考にならないかもしれません。

2Like

Comments

  1. @EndOfData

    Questioner

    他人の好みの方が参考になるものです。リポジトリの公開なども影響しますので。
    ありがとうございます。

.NET開発において一般かどうかと言われれば、一般的ではないと思います。
VisualStudioのデフォルトの名前ルール違反チェックに引っかかるので、わざわざ設定変えてまでSnakeCaseにする人は多分そんなに居ないんじゃないかな…
ただ、自分用のプロジェクトであれば、自分の好きなように命名規則をすればいいと思います。

業務であれば、大体の会社でコーディング規約的なものがあるのでそれに合わせるだけで、個人の趣向が入る余地はないです。
複数人の開発環境を統一させることを考えると、あまりデフォルトの設定を変更させるのも面倒くさいので、結局は公式の推奨する命名規則が無難だと思われます。

2Like

Comments

  1. @EndOfData

    Questioner

    特にVisual Studio等では仕様上、問題ないはずなので、私の好みが一般的じゃないのかなと思っていました。
    だいたい裏付けが取れたように思いますありがとうございました。

ゲームやアプリケーション開発業界ではCamel Caseが一般的だと思われるのですが、私はSnakeCaseの方が個人的に読みやすいと思っています。

個人がどう思うかは自由ですし、個人開発なら自由です。

公式的にはパスカルが推奨されています。
またキャメルケースに_を使う事はありますが、スネークケースを使うと言うことはほとんどありません。

一般的かどうかは知りませんが、個人的に逆らってまでスネークケースで書くと言うことはしないので、C#ではパスカルとキャメルを使います。


C# 識別子名には次のような注意書きもあります。

識別子には、連続する 2 つのアンダースコア (_) 文字を含めないでください。 これらの名前は、コンパイラによって生成される識別子用に予約されています。

トラブルの元になる可能性があるなら尚更スネークケースは避けます。

1Like

Comments

  1. @EndOfData

    Questioner

    キャメルケースに_を使う事
    _を接続詞として使うのがSnakeCaseじゃないんですか?

  2. _を接続詞として使うのがSnakeCaseじゃないんですか?

    キャメルケースでは接頭辞として使う例があります。
    たとえば、頭にs_が付けばstaticを意味します。接頭辞付きをスネークケースとは呼びません。
    あなたが仰るように接続詞、つまりスペースを_に置き換えるのがスネークケースです。

そうですね。

公式の名前つけルールは下記の様になっています。

.editorconfig で設定することもできます。

snake_case が考慮されているかと調べたところ名前付けスタイルの capitalization に指定できる値は

pascal_case / camel_case / first_word_upper / all_upper / all_lower となっております。

ただ、調べた限りは 下記の発想を元に capitalizationcamel_case にして、 word_separator_ にすることで実現できる様なので、フォーマットの定義はできそうな気はします。( dotnet format による書式強制はできそうな気はします。

I am not meaning to be argumentative at all, but wouldn't that be the case then to specify like this:

.editorconfig
dotnet_naming_style.some_style.capitalization = pascal_case
dotnet_naming_style.some_style.word_separator = "_"

Or use required_prefix = "_" and/or required_prefix = _.

And otherwise Pascal case and Camel case would not allow underscores I believe.

1Like

個人的にはcamelCaseが好きです。
ローカル変数とかメソッドパラメータはcamelCaseで、クラス名やメソッド名やプロパティ名はPascalCase、privateフィールドは'_'付きcamelCaseですね。(これが見慣れてるのでわかりやすい)

以前は、企業によってルールが多かったのですが最近結構自由になってきた感じがするような...好みが分かれますよね。

一応、プロジェクトによって合わせてますが、指定が無ければ完全にMicrosoftに洗脳されてます・・

0Like

Your answer might help someone💌