C#の最新バージョンは?C# 14とC# 15 previewの違い・確認方法・アップデート手順を解説

はじめに

C#の最新バージョンを確認するときは、「正式版の最新」と「プレビュー版の最新」を分けて考える必要があります。2026年6月時点では、正式版の最新はC# 14、次期バージョンとして試せる最新プレビュー版はC# 15 previewです。

この記事では、C# 14とC# 15 previewの違い、バージョン確認方法、アップデート手順、LangVersionの設定、移行時の注意点までまとめて解説します。

1. C#の最新バージョンは?まず結論を確認

1-1. 現在の正式版はC# 14、最新プレビュー版はC# 15 preview

C#の最新正式版はC# 14です。安定して利用できる最新バージョンを知りたい場合は、基本的にC# 14を確認すれば問題ありません。

一方、次期バージョンの機能を先行して試したい場合は、C# 15 previewを利用できます。ただしpreview版は仕様変更の可能性があるため、本番開発での採用には注意が必要です。

1-2. C#のバージョンは.NET SDK・ターゲットフレームワークと連動する

C#は単独でバージョンアップするというより、.NET SDKやプロジェクトのTargetFrameworkと連動して使う言語です。

たとえば、.NET 10をターゲットにすると既定でC# 14が使われます。.NET 11 previewを使うと、C# 15 previewの機能を試せます。

1-3. 「最新バージョン」と「使うべきバージョン」は必ずしも同じではない

最新バージョンだからといって、すべてのプロジェクトで即採用すべきとは限りません。

新規開発なら最新の安定版であるC# 14を選ぶのが自然です。一方、既存システムでは.NET SDK、ライブラリ、CI/CD、運用環境との互換性を確認してから移行する必要があります。

1-4. C# 14は.NET 10、C# 15 previewは.NET 11 previewで利用する

C# 14を使うには.NET 10 SDKが必要です。C# 15 previewを試すには.NET 11 preview SDKと、それに対応したVisual StudioやIDEが必要です。

2. C# 14とC# 15 previewの違い

2-1. C# 14は安定版、C# 15 previewは検証向け

C# 14は正式リリース済みの安定版です。業務システム、Webアプリ、API、ライブラリ開発など、通常の開発ではC# 14を選ぶのが基本です。

C# 15 previewは、次期C#の機能を先行して試すためのバージョンです。学習、検証、技術調査、将来の移行準備には有用ですが、本番運用には慎重な判断が必要です。

2-2. 対応する.NET SDK・Visual Studioの違い

C# 14は.NET 10 SDKで利用します。C# 15 previewは.NET 11 preview SDKで利用します。

Visual Studioを使う場合も、対象の.NET SDKと言語バージョンに対応したバージョンが必要です。古いVisual Studioでは最新のC#構文を認識できない場合があります。

2-3. 言語機能の違い

C# 14では、拡張メンバー、null条件代入、fieldキーワード、nameofの改善、Span<T>関連の改善などが追加されています。

C# 15 previewでは、コレクション式引数やunion typesなど、次期バージョン向けの機能が試せます。

2-4. 本番開発で使うならC# 14が基本

本番環境で使うなら、基本的にはC# 14を選びましょう。preview版は仕様変更やツール対応の不安定さが残るため、長期運用するシステムには向きません。

2-5. C# 15 previewを使うべきケース・避けるべきケース

C# 15 previewは、新機能を早めに検証したい場合や、将来の設計方針を調査したい場合に向いています。

一方、業務システム、顧客向けサービス、長期保守が必要なライブラリでは、正式リリースまで待つのが安全です。

3. C# 14の主な新機能

3-1. 拡張メンバー

C# 14では拡張メンバーにより、従来の拡張メソッドより柔軟な拡張が可能になります。

既存型に対して、より自然な形で機能を追加できるため、ユーティリティメソッドやドメイン固有の操作を整理しやすくなります。

3-2. null条件代入

null条件代入により、nullチェックを含む代入処理をより簡潔に書けるようになります。

従来はif文でnull確認をしてから代入していた処理を、より短く安全に表現できます。

3-3. fieldキーワードを使ったプロパティ改善

C# 14では、プロパティのアクセサ内でfieldキーワードを使えるようになります。

これにより、自動実装プロパティに近い書きやすさを保ちながら、set時の検証や変換処理を追加しやすくなります。

C#
public string Name
{
get;
set => field = string.IsNullOrWhiteSpace(value)
? throw new ArgumentException("Name is required")
: value;
}

3-4. nameofで非バインドジェネリック型をサポート

C# 14では、nameof(List<>)のように型引数を指定しないジェネリック型に対してもnameofを使えるようになります。

C#
var name = nameof(List<>);

型名を文字列として扱う場面で、より安全に記述できます。

3-5. Span<T>・ReadOnlySpan<T>まわりの改善

C# 14では、Span<T>ReadOnlySpan<T>に関する扱いも改善されています。パフォーマンスを重視する処理や、メモリ効率を意識したコードで恩恵を受けやすい変更です。

3-6. C# 14で既存コードに影響する可能性がある変更点

C# 14は基本的に互換性を重視していますが、新しい構文やコンパイラの解析強化により、既存コードで警告やエラーが出る可能性はあります。

アップデート時は必ずビルドとテストを実行し、警告も含めて確認しましょう。

4. C# 15 previewの主な新機能

4-1. コレクション式引数

C# 15 previewでは、コレクション式を引数としてより自然に扱える機能が追加されています。

コレクション初期化やメソッド呼び出しの記述が簡潔になり、配列やリストを渡すコードを読みやすくできます。

4-2. union types

union typesは、値が複数の型のいずれかであることを表現するための機能です。

成功・失敗の結果、複数パターンの戻り値、状態の表現などに活用できる可能性があります。ただしpreview段階のため、正式仕様は変更される可能性があります。

4-3. preview機能を試すために必要な環境

C# 15 previewを試すには、.NET 11 preview SDKと、対応するVisual StudioまたはIDEが必要です。

さらに、プロジェクトファイルでLangVersionpreviewを指定します。

XML
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>

4-4. C# 15 preview利用時の注意点

preview機能は、将来の正式版で仕様が変わる可能性があります。ビルドエラー、IDEの補完不具合、CI環境でのSDK不一致なども起こりやすくなります。

4-5. 正式リリースまでに仕様が変わる可能性

C# 15 previewの機能は、正式リリースまでに構文や挙動が変わる可能性があります。学習や検証には向いていますが、長期運用する本番コードへ組み込む場合は慎重に判断しましょう。

5. 自分の環境でC#のバージョンを確認する方法

5-1. dotnet --versionで.NET SDKのバージョンを確認する

まず、現在使われている.NET SDKを確認します。

Bash
dotnet --version

表示されたSDKバージョンから、既定で使われるC#バージョンを推測できます。

5-2. dotnet --list-sdksでインストール済みSDKを確認する

インストール済みSDKを一覧表示するには、次のコマンドを使います。

Bash
dotnet --list-sdks

複数のSDKが入っている場合、global.jsonやプロジェクト設定によって使われるSDKが変わることがあります。

5-3. csprojのTargetFrameworkを確認する

プロジェクトの.csprojを開き、TargetFrameworkを確認します。

XML
<TargetFramework>net10.0</TargetFramework>

net10.0なら既定でC# 14が使われます。

5-4. LangVersionの設定を確認する

.csprojLangVersionが指定されている場合、既定の言語バージョンが上書きされます。

XML
<PropertyGroup>
<LangVersion>14</LangVersion>
</PropertyGroup>

preview機能を使う場合は、次のように指定します。

XML
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>

5-5. #error versionでコンパイラと言語バージョンを確認する

コード内に次の行を一時的に追加すると、コンパイラと言語バージョンを確認できます。

C#
#error version

ビルド時にエラーが出ますが、そのメッセージ内に使用中のC#バージョンが表示されます。確認後は必ず削除してください。

5-6. Visual StudioでC#バージョンを確認する方法

Visual Studioでは、プロジェクトのプロパティからビルド設定を確認できます。言語バージョンが表示される場合は、そこで現在の設定を確認できます。

ただし、SDKスタイルのプロジェクトではTargetFrameworkに応じて自動選択されることが多いため、.csprojの確認もあわせて行いましょう。

6. C#を最新バージョンへアップデートする手順

6-1. 現在の.NET SDKとプロジェクト設定を確認する

まず、現在のSDKとプロジェクト設定を確認します。

Bash
dotnet --version
dotnet --list-sdks

あわせて.csprojTargetFrameworkLangVersionも確認しましょう。

6-2. 最新の.NET SDKをインストールする

C# 14を使うには.NET 10 SDKをインストールします。C# 15 previewを試す場合は.NET 11 preview SDKが必要です。

6-3. Visual Studioまたは開発環境を更新する

Visual Studio、Rider、VS CodeのC#拡張など、開発環境も最新のC#に対応したものへ更新します。

SDKだけを更新しても、IDEが古いと構文エラーとして表示されることがあります。

6-4. csprojのTargetFrameworkを変更する

C# 14を使う場合は、TargetFrameworkをnet10.0に変更します。

XML
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>

6-5. 必要に応じてLangVersionを指定する

通常はTargetFrameworkに応じてC#バージョンが自動選択されるため、LangVersionを明示しなくても問題ありません。

ただし、preview機能を試す場合はpreviewを指定します。

XML
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>

6-6. ビルド・テストで互換性を確認する

アップデート後は必ずビルドとテストを実行します。

Bash
dotnet build
dotnet test

警告が増えていないか、NuGetパッケージの互換性に問題がないかも確認しましょう。

6-7. CI/CD環境のSDKバージョンも更新する

ローカルでは成功するのにCIで失敗する場合、CI環境のSDKが古い可能性があります。

GitHub Actions、Azure Pipelines、Dockerfileなどで使用している.NET SDKのバージョンも更新しましょう。

7. LangVersionの設定方法と注意点

7-1. LangVersionをcsprojに指定する方法

.csprojに次のように指定します。

XML
<PropertyGroup>
<LangVersion>14</LangVersion>
</PropertyGroup>

ただし、通常はTargetFrameworkに合わせて自動選択されるため、明示指定は必要な場合だけにしましょう。

7-2. previewを指定してC# 15 previewを有効化する方法

C# 15 previewを試す場合は、次のように指定します。

XML
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>

この設定により、使用中のコンパイラが対応している最新preview機能を有効化できます。

7-3. Directory.Build.propsで複数プロジェクトに適用する方法

複数プロジェクトに同じ設定を適用したい場合は、Directory.Build.propsを使います。

XML
<Project>
<PropertyGroup>
<LangVersion>14</LangVersion>
</PropertyGroup>
</Project>

ソリューション全体で言語バージョンを統一したい場合に便利です。

7-4. latest指定を避けたほうがよい理由

latestを指定すると、環境によって使われるC#バージョンが変わる可能性があります。

開発者ごと、CI環境ごとにビルド結果が変わる原因になるため、安定したビルドを重視するならlatestは避けるのが無難です。

7-5. ターゲットフレームワークより新しいC#バージョンを使うリスク

TargetFrameworkより新しいC#バージョンを無理に使うと、実行時ライブラリやSDKとの組み合わせがサポート外になる可能性があります。

基本的には、TargetFrameworkに対応した既定のC#バージョンを使うのが安全です。

8. 最新C#にアップデートできない・反映されないときの原因

8-1. .NET SDKがインストールされていない

最新のC#を使うには、対応する.NET SDKが必要です。まずはdotnet --list-sdksでSDKが入っているか確認しましょう。

8-2. global.jsonで古いSDKに固定されている

リポジトリ内にglobal.jsonがある場合、使用するSDKが固定されていることがあります。

JSON
{
"sdk": {
"version": "9.0.100"
}
}

このように古いSDKが指定されていると、最新SDKをインストールしていても反映されません。

8-3. TargetFrameworkが古いままになっている

SDKを更新しても、TargetFrameworknet8.0net9.0のままだと、既定のC#バージョンも古いままになります。

C# 14を使うならnet10.0を指定しましょう。

8-4. Visual StudioやIDEが最新C#に対応していない

IDEが古いと、新しいC#構文をエラーとして表示する場合があります。Visual Studioや拡張機能も更新しましょう。

8-5. CI環境・Docker環境だけ古いSDKを使っている

ローカルでは成功するのにCIやDockerで失敗する場合、環境側のSDKが古い可能性があります。

Dockerfileで古いSDKイメージを指定していないか確認してください。

dockerfile
FROM mcr.microsoft.com/dotnet/sdk:10.0

8-6. NuGetパッケージやライブラリが新しい.NETに未対応

TargetFrameworkを上げると、利用中のNuGetパッケージが新しい.NETに対応していない場合があります。

アップデート前に、主要パッケージの対応状況を確認しましょう。

9. C#最新バージョンへ移行するときの判断基準

9-1. 新規プロジェクトなら最新の安定版を選ぶ

新規プロジェクトなら、基本的には最新の安定版であるC# 14と.NET 10を選ぶのがおすすめです。

新機能を活用しやすく、長期的な保守もしやすくなります。

9-2. 既存プロジェクトは.NETのサポート期限も確認する

既存プロジェクトでは、現在使っている.NETのサポート期限も確認しましょう。

古い.NETを使い続けると、セキュリティ更新やライブラリ対応の面で不利になる可能性があります。

9-3. 業務システムではpreview版の採用を慎重に判断する

業務システムでは、C# 15 previewの採用は慎重に判断しましょう。

仕様変更、ツール未対応、運用環境の制約などを考えると、正式リリース後に移行するほうが安全です。

9-4. ライブラリ開発では利用者の実行環境を考慮する

ライブラリを開発する場合、自分の環境だけでなく利用者の環境も考慮する必要があります。

最新のC#や.NETに依存しすぎると、利用できるユーザーが限られる可能性があります。

9-5. 学習目的ならC# 15 previewを試す価値がある

学習目的なら、C# 15 previewを試す価値があります。

新しい構文や設計思想を早めに理解できるため、正式リリース後の移行にも役立ちます。

10. よくある質問

10-1. C#の最新バージョンはどこで確認できますか?

Microsoft LearnのC#公式ドキュメントで確認できます。特に「C# language versioning」や「What's new in C#」を確認すると、最新の正式版とpreview版を把握できます。

10-2. C# 14を使うにはVisual Studio 2022で足りますか?

C# 14を快適に使うには、.NET 10 SDKに対応したVisual Studioが必要です。Visual Studio 2022の古いバージョンでは対応できない可能性があるため、対応状況を確認して更新しましょう。

10-3. .NET Frameworkで最新のC#は使えますか?

.NET Frameworkでは、既定のC#バージョンは古いままです。最新のC#機能を使いたい場合は、.NET 10などの新しい.NETへの移行を検討する必要があります。

10-4. C# 15 previewは本番環境で使えますか?

技術的には使える場合がありますが、本番環境での利用はおすすめしません。preview版は仕様変更の可能性があるため、業務システムでは正式リリースを待つのが安全です。

10-5. C#のバージョンだけを個別にアップデートできますか?

一部はLangVersionで指定できますが、C#は.NET SDKやTargetFrameworkと密接に関係しています。基本的には.NET SDKとTargetFrameworkを更新する形で考えるのが適切です。

10-6. C# 14にアップデートすると既存コードは壊れますか?

多くの場合、既存コードはそのまま動作します。ただし、警告の増加、依存パッケージの非互換、ビルド環境のSDK不一致などが起こる可能性はあります。移行前後で必ずビルドとテストを実行しましょう。

まとめ

C#の最新正式版はC# 14、最新プレビュー版はC# 15 previewです。

本番開発では、安定版であるC# 14と.NET 10を使うのが基本です。C# 15 previewは、次期機能の検証や学習には有用ですが、仕様変更の可能性があるため本番採用には慎重な判断が必要です。

C#のバージョンは.NET SDK、TargetFramework、LangVersion、Visual StudioやCI環境と連動します。最新バージョンへ移行するときは、ローカル環境だけでなく、プロジェクト設定、ビルド環境、依存ライブラリまで含めて確認しましょう。