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

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

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

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

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

解決済

C# のコーディング規約 (改行位置) について

hoshi-takanori
hoshi-takanori

総合スコア7626

C#

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

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

8回答

1評価

2クリップ

6955閲覧

投稿2020/05/21 16:59

編集2020/05/21 18:37

質問

最近 C# の勉強を始めたのですが、他の言語 (主に Java や Swift など) との違いに戸惑っております。
特に気になるのが、コードブロック (クラスやメソッド、if や for など) を開始する { の前で Visual Studio が自動的に改行することで、これによって少々間延びした印象を受けます。

Visual Studio の自動フォーマット機能については設定で変更できるようですが、普通はデフォルトの設定で使うものなのでしょうか? 設定方法の質問ではなく、一般的なコーディング規約はどうなっていて、どこまでそれに従っているのかをお聞きしたいです。

追記

今は個人で勉強中なので好きなスタイルでもいいのですが、今後他の人と共同作業する際のことを考えて一般的なスタイルを確認したくて質問しました。一貫性が重要ということは理解しているつもりで、だからこそ学習の初期段階で一般的なスタイルに慣れておきたいと思っています。

「一般的」と言っても、統計的なことを知りたいというよりは (もちろんそれも重要ですが)、いろんな現場での経験談を聞かせていただけるとありがたいです。

該当のソースコード

比較のために C# と Swift で同等のコードを書いてみましたが、{ get; set; } だけなら 1 行で済むのに、set に条件をつけるだけでこんなに行数が増えるなんて、と驚いています。

c#

class Item { private int _quantity; public int Quantity { get { return _quantity; } set { if (value >= 0) { _quantity = value; } } } }

swift

class Item { private var _quantity: Int = 0 var quantity: Int { get { return _quantity } set(value) { if value >= 0 { _quantity = value } } } }

試したこと

「C# コーディング規約」で検索して、以下のドキュメントを参照しました。サンプルコードを見る限り { の前で改行しているようですが、改行位置のような細かいことは明示的には書いてありませんでした。

補足情報(FW/ツールのバージョンなど)

Windows 10
Visual Studio 2019

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

javahack

2020/05/21 17:42

個人でやってるなら自分の好きなスタイルで良いと思います。 今はIDEで一括変換できますし。 業務の場合、大抵はコーディング規約が用意されていてそれに従うことになります。
hoshi-takanori

2020/05/21 18:49

コメントありがとうございます。質問の意図が曖昧だった部分について追記しました。 実際の業務で使われているコーディング規約がどうだったかの経験談をお聞かせいだだければ幸いです。
Zuishin

2020/05/22 00:11

public int Quantity { get => _quantity; set => _quantity = value >= 0 ? value : 0; }
gentaro

2020/05/22 06:19

set => _quantity = value >= 0 ? value : 0; にしてしまうと、1以上の値をセットした後にマイナスの値が渡された時の挙動が変わるんで、書き換えとしては等価ではないですね。(まぁその動きもどうなんだ、というのはあるけど)
Zuishin

2020/05/23 00:09

ああ、本当ですね。最小値未満を入れたら最小値になるものと見間違えていました。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。