.NET/C#のコーディング規約、命名規則、レイアウト、C# 12/13/14の最新機能活用ガイドラインを定義する。C#/.NETコード作成時、クラス・メソッド命名時、コードフォーマット時、またはユーザーがコーディング規約、命名規則、C#ベストプラクティス、Primary Constructors、Collection Expressions、field キーワードに言及した際に使用する。
View on GitHubRevTechStudio/rts-plugins
rts-foundation
rts-foundation/skills/coding-conventions/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/RevTechStudio/rts-plugins/blob/main/rts-foundation/skills/coding-conventions/SKILL.md -a claude-code --skill coding-conventionsInstallation paths:
.claude/skills/coding-conventions/# Coding Conventions
## 概要
このSkillは、開発されるすべての.NETプロジェクトに適用されるコーディング規約を定義する。.NET 8以降の最新機能(C# 12/13/14、.NET 8/9/10)を積極的に活用し、可読性、保守性、パフォーマンスの高いコードを実現することを目的とする。
## 責任範囲
このSkillは以下の範囲をカバーする:
- .NET/C#の最新機能(C# 12/13/14、.NET 8/9/10)の活用方針
- 命名規則(型、メンバー、変数、パラメータ)
- コードレイアウトとフォーマット
- 言語機能の使用方針(型推論、コレクション、例外処理)
- LINQとラムダ式のベストプラクティス
- モダンC#構文の推奨パターン
## 基本方針
- .NET 8以降の最新機能を積極的に使用する(C# 12/13/14、.NET 8/9/10)
- 古いバージョンとの互換性が必要な場合を除き、常に最新機能を優先する
- 古い言語構文は避ける
- **重要: アンダースコアプレフィックス(`_field`)の使用は絶対に禁止する**
- **重要: 中括弧の省略は絶対に禁止する(1行で記述できる場合でも省略不可)**
- Microsoftの公式コーディング規約に従う
- 一貫性を保ち、チーム全体で同じスタイルを適用する
## .NET/C#の最新機能(バージョン別)
.NET 8以降の各バージョンで導入された主要機能を積極的に活用する。古いバージョンとの互換性が必要な場合を除き、常に最新の機能を優先的に使用する。
### C# 12 (.NET 8) - 2023年11月リリース
#### Primary Constructors
- クラスやstructの宣言でパラメータを定義し、クラス全体で使用できる
- 明示的なフィールド宣言を削減し、初期化を簡潔にする
良い例:
```csharp
public class Person(string name, int age)
{
public string Name => name;
public int Age => age;
public void Display()
{
Console.WriteLine($"{name} is {age} years old");
}
}
```
悪い例:
```csharp
public class Person
{
private string name;
private int age;
public Person(string name, int age)
{
this.name = name;
this.age = age;
}
public string Name => name;
public int Age => age;
}
```
#### Collection Expressions
- 括弧とスプレッド演算子を使用してコレクションを簡潔に作成する
- 複数のコレクションを結合する際に便利
良い例:
```csharp
int[] array = [1, 2, 3, 4, 5];
List<string> list = ["one", "two", "three"];
int[] row0 = [1, 2, 3];
int[] row1 = [4, 5, 6];
// スプレッド演算子で結合
int[] combined = [..row0, ..row1];
```
#### Default Lambda Parameters
- ラムダ式にデフォルトパラメータ値を指定できる
良い例:
```csharp
var incrementBy = (int source, int increment = 1) => source + increment;
Console.WriteLine(incrementBy(5));
Console.WriteLine(incrementBy(5, 3));
```
#### Alias Any Type
- using ディレクティブで複雑な型に別名を付けられる
良い例:
```csharp
using Point = (int x, int y);
using ProductList = System.Collections.Generic.List<(string Name, decimal Price)>;
Point