C#バージョン確認完全ガイド|Visual Studio、コマンドライン、コードの手順を解説のカバー画像

C#バージョン確認完全ガイド|Visual Studio、コマンドライン、コードの手順を解説

公開日:2025/06/18最終更新日:2025/06/18

C#はMicrosoftが開発した汎用性の高いプログラミング言語であり、.NET Frameworkや.NET Coreといったプラットフォーム上で動作します。デスクトップアプリケーションからWebアプリケーション、モバイルアプリケーションまで幅広い開発に利用されています。


C#のバージョンは頻繁に更新され、新しいバージョンがリリースされるたびにさまざまな機能追加や改善が行われています。このため、開発者は現在使用しているC#のバージョンを正確に把握し、プロジェクトに適したバージョンを使用することが重要です。


本記事では、C#のバージョンを確認する方法について、Visual Studio、コマンドライン、コードの3つの方法を解説します。また、C#コンパイラのバージョン確認や、バージョンごとの主要な機能についても詳しく解説します。

1.C# バージョン確認の基本概念

C#のバージョン管理を理解するために、まずは基本的な概念を押さえておきましょう。


C#には言語バージョンとコンパイラバージョンという2つのバージョンがあり、それぞれ異なる意味を持ちます。また、C#は.NET Frameworkや.NET Coreといったフレームワーク上で動作するため、C#のバージョンとフレームワークのバージョンの関係性も理解しておく必要があります。


この章ではC#の言語バージョンとコンパイラのバージョンの違いや、.NET Frameworkとの関係性について解説します。

C#バージョンとコンパイラバージョンの違い

C#の言語バージョンとは、C#言語自体の仕様を示すバージョンのことです。新しい言語バージョンがリリースされると、新しい構文や機能が追加されます。例えば、C# 8.0では非null参照型が導入され、C# 9.0ではレコード型が追加されました。


一方、コンパイラバージョンは、C#のソースコードをコンパイルして実行可能な形式に変換するコンパイラのバージョンです。通常、コンパイラは特定の言語バージョンをサポートしており、最新のコンパイラは古い言語バージョンもサポートしていることが一般的です。


ただし、古いコンパイラは新しい言語バージョンをサポートしていない場合があります。例えば、C# 8.0で導入された非null参照型を使用するには、C# 8.0以降をサポートするコンパイラが必要です。


C#のバージョンを確認するときは、言語バージョンとコンパイラバージョンの両方を把握することが重要だと覚えておきましょう。

C#バージョンと.NET Frameworkとの関係性

C#は.NET Frameworkまたは.NET Core上で動作します。.NET FrameworkはWindows上で動作するアプリケーションを開発・実行するためのプラットフォームであり、.NET Coreはクロスプラットフォームに対応したオープンソースプラットフォームです。


C#の各バージョンは.NET Frameworkのバージョンと密接に関係しています。例えば、C# 13は.NET 9以降、C# 12は.NET 8以降、C# 11は.NET 7以降でのみサポートされています。


このため、プロジェクトを開発するときは、使用する.NET Frameworkまたは.NETバージョンに対応したC#バージョンを選択する必要があります。互換性のない組み合わせを選択すると、コンパイルエラーが発生したり、プログラムが正常に動作しなくなる可能性があります。


Microsoftの公式ドキュメントには、C#バージョンと.NET Framework/NETバージョンの対応関係が詳しく記載されているため、開発者は常に最新の情報を確認することが重要です。

2.C#のバージョンを確認する3つの方法

C#のバージョンを確認する方法はいくつか存在します。


この章では、Visual Studioを使用する方法、コマンドラインを使用する方法、そしてプログラムコードを使用する方法の3つを解説します。

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

Visual Studioは、Microsoftが提供する統合開発環境(IDE)です。Visual Studioを使用すると、GUIを通じてC#のバージョンを簡単に確認できます。


Visual StudioでC#のバージョンを確認する方法は以下のとおりです。

  1. Visual StudioでC#プロジェクトを開き、ソリューションエクスプローラーでプロジェクトを右クリックして「プロパティ」を選択します。

  2. プロパティウィンドウの「アプリケーション」タブで「ターゲットフレームワーク」を確認します。これにより、プロジェクトが使用している.NET Frameworkまたは.NETのバージョンがわかります。

  3. プロパティウィンドウの「ビルド」タブを選択し、詳細設定を開きます。その中の「言語バージョン」で、プロジェクトで使用するC#の言語バージョンを確認できます。

なお、Visual StudioのバージョンによってサポートされるC#のバージョンも異なります。C#の最新の機能を利用したいときは、Visual Studioのバージョンも最新化しておきましょう。

コマンドラインでのC#バージョン確認方法

コマンドラインを使用してC#のバージョンを確認する方法もあります。


コマンドプロンプトまたはPowerShellで「csc -help」と入力すると、C#コンパイラの情報とバージョンが表示されます。また「dotnet --version」コマンドを実行すると、インストールされている.NET SDKのバージョンを確認できます。さらに「dotnet --list-sdks」コマンドを使用すると、システムにインストールされているすべての.NET SDKのバージョンを一覧表示できます。


これらのコマンドを使用することで、C#コンパイラのバージョンを簡単に確認できます。

プログラムコードからC#バージョンを確認する方法

プログラムコードからC#のバージョンを確認する方法は、実行時にC#のバージョンやランタイム情報を取得したい場合に役立ちます。


プログラムコードからC#のバージョンを確認する方法はいくつか存在します。

  • System.Environment.Versionプロパティを使用: System.Environment.Versionプロパティを使用すると、実行環境のCLR(共通言語ランタイム)のバージョンを取得できます。CLRのバージョンは、C#のバージョンと間接的に関連しています。

  • System.Runtime.InteropServices.RuntimeInformation.FrameworkDescriptionプロパティを使用: System.Runtime.InteropServices.RuntimeInformation.FrameworkDescriptionプロパティを使用すると、現在実行中のアプリケーションが使用している.NETランタイムのバージョンを取得できます。

  • 定義済みシンボルを使用: #ifディレクティブと定義済みのシンボルを使用すると、コンパイル時にC#のバージョンを判定し、それに応じてコードを切り替えることができます。

それぞれの使用例は以下のとおりです。

using System;

using System.Runtime.InteropServices;


public class VersionChecker

{

    public static void Main(string[] args)

    {

        // 1. System.Environment.Versionプロパティを使用

        Console.WriteLine("CLR Version: " + Environment.Version);


        // 2. System.Runtime.InteropServices.RuntimeInformation.FrameworkDescriptionプロパティを使用

        Console.WriteLine(".NET Runtime: " + RuntimeInformation.FrameworkDescription);


        // 3. 定義済みシンボルを使用

        #if NET7_0

            Console.WriteLine("C# Version: C# 11.0 or later");

        #elif NET6_0

            Console.WriteLine("C# Version: C# 10.0");

        #elif NET5_0

            Console.WriteLine("C# Version: C# 9.0");

        #elif NETCOREAPP3_1

            Console.WriteLine("C# Version: C# 8.0");

        #elif NETCOREAPP3_0

            Console.WriteLine("C# Version: C# 8.0");

        #elif NETCOREAPP2_1

            Console.WriteLine("C# Version: C# 7.3");

        #elif NET472

            Console.WriteLine("C# Version: C# 7.3");

        #else

            Console.WriteLine("C# Version: Unknown");

        #endif

    }

}

これらの方法を使用することで、プログラム内でC#のバージョンを動的に判断できます。特定のバージョンに依存する処理を実装したいときに活用しましょう。


関連記事

C#とは?基本文法や特徴、メリット、開発分野まで初心者に必要な情報をわかりやすく解説


【C#】Listと配列との違いや初期化・削除・要素数取得・型指定なしの使い方を紹介

3.C#コンパイラのバージョンを確認する方法

特定のC#言語機能が使えるかどうか判断するときは、C#コンパイラのバージョンを確認します。C#コンパイラは、C#のソースコードを中間言語に変換するものであり、コンパイラのバージョンによってサポートされる言語機能が異なります。


C#コンパイラのバージョンを確認することは、開発環境のトラブルシューティングや互換性の検証に役立ちます。この章では、cscコマンドとdotnetコマンドを使用してC#コンパイラのバージョンを確認する方法を解説します。

cscコマンドによる確認

cscコマンドは、C#コンパイラを直接実行するためのコマンドです。このコマンドを使用すると、C#コンパイラのバージョンを簡単に確認できます。


cscコマンドでC#コンパイラのバージョンを確認する手順は、以下のとおりです。

  1. コマンドプロンプトを開く: コマンドプロンプトまたはPowerShellを開きます。

  2. cscコマンドを実行: csc -versionと入力してEnterキーを押します。

  3. バージョン情報を確認: コマンドの実行結果として、C#コンパイラのバージョン情報が表示されます。

cscコマンドは、通常、.NET Framework SDKまたはVisual Studioに含まれています。うまくいかないときは、これらのツールがインストールされていることを確認してください。

dotnetコマンドによる確認

.NET Core/.NET 5以降の環境では、dotnetコマンドを使用してコンパイラの情報を確認できます。dotnet --versionコマンドでSDKバージョンを確認し、dotnet --infoで詳細な環境情報を取得します。


dotnetコマンドでC#のコンパイラのバージョンを確認する手順は、以下のとおりです。

  1. コマンドプロンプトを開く: コマンドプロンプトまたはPowerShellを開きます。

  2. dotnet --infoコマンドを実行: dotnet --infoと入力してEnterキーを押します。

  3. バージョン情報を確認: コマンドの実行結果として、.NET SDKに関する様々な情報が表示されます。C#コンパイラのバージョンは直接表示されません。SDKのバージョンから対応するC#バージョンを推測する必要があります。実際の言語バージョンを確認するには、コード内に#error versionを記述する方法が確実です。

dotnet --infoコマンドを使うと、.NET SDKのバージョン、ランタイムのバージョン、環境変数など、開発環境に関するさまざまな情報を確認できます。


関連記事

【C#】DateTime完全ガイド:初期化・文字列変換から年月日・時間・ミリ秒操作まで詳細解説

4.C#のバージョンを変更・更新する方法

C#で開発するときはプロジェクトの要件は使用したい要件に応じて適切なバージョンを選択する必要があります。開発環境やチーム開発における一貫性を保つため、プロジェクトごとにC#のバージョンが指定されていることが一般的です。


この章では、C#のバージョンを変更したり更新したりする方法を紹介します。

プロジェクトファイルでのC#バージョン設定

C#のバージョンは、プロジェクトファイル(.csproj)で直接指定できます。


プロジェクトファイルでC#のバージョンを設定する手順は以下のとおりです。

  1. プロジェクトファイルを開く:Visual Studioでプロジェクトを右クリックし、「プロジェクトファイルを編集」を選択します。

  2. 言語バージョンを指定する:<LangVersion>タグを追加または編集します。

  3. 保存してビルド:ファイルを保存し、プロジェクトを再ビルドすることで変更が反映されます。

例えば、最新バージョンを使用する場合は以下のように記述します。

<PropertyGroup>

    <LangVersion>latest</LangVersion>

</PropertyGroup>

特定のバージョンを指定する場合は、9.0や10.0など、使用したいバージョン番号を記載してください。

Visual StudioでのC#バージョンアップ手順

Visual Studioを使用してC#の言語バージョンを変更する場合、以下の手順を実行します。

  1. プロジェクトのプロパティを開く:Visual Studioでプロジェクトを右クリックし「プロパティ」を選択します。

  2. ビルドタブを選択:左側のメニューから「ビルド」を選択し、画面下部にある「詳細設定」をクリックします。

  3. 言語バージョンを選択:「言語バージョン」のドロップダウンメニューから、使用したいバージョンを選択します。例えば、「最新(latest)」や「C# 10.0」などを選択できます。

  4. 変更を保存:「OK」をクリックして設定を保存し、プロジェクトを再ビルドします。

ただし、Visual Studioでは既定のバージョンがプロジェクトのターゲットフレームワークに合わせて調整されているため、UI上でのバージョン変更オプションが無効になることがあります。このときは、前述のプロジェクトファイルを直接編集する必要があります。


また、Visual Studio自体を最新化することで、新しいC#機能のサポートが追加されます。最新機能を利用したい場合は、Visual Studio Installerを使用してIDEを最新バージョンに更新しましょう。

5.C#バージョン別主要機能一覧

C#はバージョンごとに新しい機能が追加され、開発効率やコードの安全性が向上しています。


以下は主要なバージョンとその機能の一覧です。

バージョン

主な機能

C# 8.0

・非同期ストリーム:IAsyncEnumerable<T>による非同期データ処理

・null許容参照型:コンパイル時のnullチェック強化

・デフォルトインターフェース実装:既存インターフェースへの機能追加

C# 9.0

・レコード型:不変データ構造の簡潔な定義

・init専用セッター:オブジェクト初期化後の不変性保証

・トップレベルステートメント:Mainメソッドの記述省略

C# 10.0

・グローバルusingディレクティブ:プロジェクト全体での名前空間インポート

・ファイルスコープ名前空間:ネストレベルの削減

C# 11.0

・生文字列リテラル:エスケープ不要な文字列記述

・required修飾子:必須プロパティの明示的指定

・ジェネリック属性:型パラメーターを持つ属性の定義

C# 12.0

・プライマリコンストラクタ:クラスと構造体での簡潔なコンストラクタ記述

・コレクション式:[1, 2, 3]のような統一された初期化構文

・ラムダ式の省略可能なパラメータ:ラムダ式のパラメーターにデフォルト値を定義できます。

C# 13.0

・paramsコレクション:配列以外のコレクション型での可変長引数

・新しいlock型:より効率的な排他制御

・新しいエスケープシーケンス(\e):ANSI エスケープ文字の直接記述

なお、C#の機能は対応する.NETランタイムの機能に依存しているため、ターゲットフレームワークより新しいC#のバージョンは使用できません。C#のバージョンを更新するときは、ターゲットフレームワークのバージョンにも注意しましょう。


関連記事

C# String Format完全ガイド|0埋め・日付書式・16進数表示・桁数指定の方法を解説


C#演算子完全ガイド:比較・Nullの基礎からオーバーロード・優先順位などの応用まで徹底解説

6.まとめ

C#は定期的にバージョンアップされ、各バージョンで生産性向上や性能改善につながる機能が追加されています。適切なバージョン管理をすることで、開発効率や保守性の向上につながります。


C#のバージョン変更や更新は、プロジェクトファイルの編集やVisual Studioの設定画面を利用することで簡単に行えます。プロジェクトで指定されたバージョンを使用して、開発チーム全体で同じバージョンを使うようにしましょう。


本記事が皆様にとって少しでもお役に立てますと幸いです。


フリーランスボード」は、数多くのフリーランスエージェントが掲載するITフリーランスエンジニア・ITフリーランス向けの案件・求人を一括検索できるサイトです。


開発環境、職種、単価、稼働形態、稼働日数など様々な条件から、あなたに最適なフリーランス案件・求人を簡単に見つけることができます。

単価アップを目指す方や、自分の得意なスキルを活かせる案件に参画したい方は、ぜひ「フリーランスボード」をご利用ください。


自身に最適なフリーランスエージェントを探したい方はこちらよりご確認いただけます。

無料で登録したらスカウトを待つだけ フリーランスの新しい仕事探しを始めよう

この記事の監修者

笠間 慎

大学卒業後、人材紹介会社にコンサルタントとして従事。フリーランスとして独立。その後、フリーランス案件サイト「フリーランススタート」の立ち上げに編集長兼ライターとして参画し、月間30万人が利用する人気メディアへと成長させる。 2024年より、フリーランスボード編集長に就任。自身の経験を元に、フリーランスの活躍を支援する情報を発信している。

運営者情報

「フリーランスボード」はINSTANTROOM株式会社によって運営されています。編集は同社のフリーランスボードコンテンツ制作チームが担当しています。

会社名

INSTANTROOM株式会社

設立年月日

2021年3月31日

事業内容

フリーランスボード

ギョーテン

EngineerDASH

FreelanceBase

コンテンツ制作

運営ポリシー

フリーランスボードは、すべてのフリーランスが安心して活躍できる社会を目指し、公平かつ信頼できる情報を分かりやすく提供することに努めます。 私たちは、一次情報に基づいた正確なコンテンツや求人案件情報を通じ、 フリーランスの皆さまが最適な案件選びやキャリア形成を行えるようサポートします。

フリーランスボードの調査リリース

ITフリーランス及びフリーランスエージェント市場白書 2025フリーランスエージェント及びITフリーランス人材の市場調査【2024年版】

フルリモート案件を 無料登録した方限定で配信中

目次

1.C# バージョン確認の基本概念

C#バージョンとコンパイラバージョンの違い

C#バージョンと.NET Frameworkとの関係性

2.C#のバージョンを確認する3つの方法

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

コマンドラインでのC#バージョン確認方法

プログラムコードからC#バージョンを確認する方法

3.C#コンパイラのバージョンを確認する方法

cscコマンドによる確認

dotnetコマンドによる確認

4.C#のバージョンを変更・更新する方法

プロジェクトファイルでのC#バージョン設定

Visual StudioでのC#バージョンアップ手順

5.C#バージョン別主要機能一覧

6.まとめ