C#と.NETとのバージョンの関係
C#と.NETにはそれぞれバージョンがあります。数字が似ているため混同しやすいのですが、C#はプログラミング言語、.NETはC#で作ったプログラムを動かすための開発・実行環境です。
この記事では、C#と.NETの関係を、初めて学ぶ人向けに整理します。
まず、C#・.NET・Visual Studioを分けて考えよう
- C#:プログラムを書くための言語です。
- .NET:C#のプログラムを作成・実行するための機能やライブラリをまとめた開発基盤です。
- Visual Studio:コードを書いたり、実行したり、デバッグしたりするための開発ツールです。
たとえば「Visual Studioで、.NET 10を対象にしたC#のプロジェクトを作る」という使い方をします。3つは関係していますが、同じものではありません。
C#と.NETの主な対応関係
.NET 5以降では、.NETのメジャーバージョンごとに、既定で使われるC#のバージョンが決まっています。安定版の主な対応関係は次のとおりです。
| .NET | 既定のC# | リリース時期 |
|---|---|---|
| .NET 10 | C# 14 | 2025年11月 |
| .NET 9 | C# 13 | 2024年11月 |
| .NET 8 | C# 12 | 2023年11月 |
| .NET 7 | C# 11 | 2022年11月 |
| .NET 6 | C# 10 | 2021年11月 |
| .NET 5 | C# 9 | 2020年11月 |
基本的には、プロジェクトが対象にしている.NETに合わせて、C#のバージョンも自動的に選ばれます。初心者のうちは、C#のバージョンだけを無理に変更する必要はありません。
Microsoftの資料にはC# 15も掲載されていますが、これは現在プレビュー段階です。学習や通常の制作では、安定版の.NETと、そこで既定になるC#を使うと安心です。
Visual Studioで.NETのバージョンを確認する
Visual Studioでは、次の手順でプロジェクトが対象にしている.NETを確認できます。
- ソリューションエクスプローラーで、確認したいプロジェクトを右クリックします。
- 「プロパティ」を選びます。
- 「アプリケーション」または「全般」に表示される「ターゲット フレームワーク」を確認します。
たとえば「.NET 10.0」と表示されていれば、そのプロジェクトは.NET 10を対象にしています。

プロジェクトファイルでも確認できる
プロジェクトの.csprojファイルを開くと、TargetFrameworkという項目があります。
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
net10.0は.NET 10、net8.0は.NET 8を表します。Visual Studioの画面で確認できないときにも役立つ方法です。
C#の言語バージョンを確認する
実際に選ばれているC#の言語バージョンを確認したい場合は、コードに一時的に次の1行を追加します。
#error version
ビルドするとエラー一覧に、コンパイラのバージョンと、現在選ばれているC#の言語バージョンが表示されます。確認が終わったら、この行は削除してください。
言語バージョンは通常、手動で指定しない
C#のバージョンは、対象の.NETに合わせて自動で選ばれる既定値を使うのがおすすめです。特別な理由がある場合は、.csprojに次のように指定できます。
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<LangVersion>14.0</LangVersion>
</PropertyGroup>
latestを指定すると、インストールされているコンパイラによって使われる機能が変わる可能性があります。別のパソコンや開発環境でビルド結果が変わる原因になるため、Microsoftもlatestの常用を推奨していません。
Microsoftの公式資料
対応関係や設定方法は更新されるため、迷ったときはMicrosoft Learnの資料も確認しましょう。
Unityを使っている場合
Unityでは、使っているUnityのバージョンによって利用できるC#の機能が異なります。.NETの一般的な対応表だけで判断せず、Unity側の対応状況も確認してください。
まとめ
- C#はプログラミング言語、.NETは開発・実行環境、Visual Studioは開発ツールです。
- .NET 5以降では、対象の.NETに合わせてC#の既定バージョンが選ばれます。
- 初心者のうちは、プロジェクトのターゲットフレームワークを選び、C#の言語バージョンは既定値に任せるのが基本です。









ディスカッション
コメント一覧
まだ、コメントがありません