-langversion (C# コンパイラ オプション)-langversion (C# Compiler Options)

コンパイラが、選択した C# 言語仕様に含まれている構文のみを受け入れるようにします。Causes the compiler to accept only syntax that is included in the chosen C# language specification.

構文Syntax

-langversion:option

引数Arguments

option
有効な値は、次のとおりです。The following values are valid:

オプションOption 説明Meaning
previewpreview コンパイラは、サポート可能な最新のプレビュー バージョンの有効な言語構文をすべて受け入れます。The compiler accepts all valid language syntax from the latest preview version that it can support.
latestlatest コンパイラは、サポート可能な最新バージョン (マイナー リリースを含む) の有効な言語構文をすべて受け入れます。The compiler accepts all valid language syntax from the latest version (including minor releases) that it can support.
latestMajorlatestMajor コンパイラは、最新のメジャー バージョンからサポートできるすべての有効な言語構文を受け入れます。The compiler accepts all valid language syntax from the latest major version that it can support.
8.08.0 コンパイラは、C# 8.0 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 8.0 or lower.
7.37.3 コンパイラは、C# 7.3 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 7.3 or lower.
7.27.2 コンパイラは、C# 7.2 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 7.2 or lower.
7.17.1 コンパイラは、C# 7.1 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 7.1 or lower.
77 コンパイラは、C# 7.0 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 7.0 or lower.
66 コンパイラは、C# 6.0 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 6.0 or lower.
55 コンパイラは、C# 5.0 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 5.0 or lower.
44 コンパイラは、C# 4.0 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 4.0 or lower.
33 コンパイラは、C# 3.0 以下に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in C# 3.0 or lower.
ISO-2ISO-2 コンパイラは、ISO/IEC 23270:2006 C# (2.0) に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in ISO/IEC 23270:2006 C# (2.0).
ISO-1ISO-1 コンパイラは、ISO/IEC 23270:2003 C# (1.0/1.2) に含まれている構文のみを受け入れます。The compiler accepts only syntax that is included in ISO/IEC 23270:2003 C# (1.0/1.2).

既定の言語バージョンは、アプリケーションのターゲット フレームワークやインストールされている SDK または Visual Studio のバージョンに依存します。The default language version depends on the target framework for your application and the version of the SDK or Visual Studio installed. これらの規則は、言語バージョンの構成に関する記事の中で定義されています。Those rules are defined in the configuring the language version article.

解説Remarks

C# アプリケーションで参照されるメタデータは、 -langversion コンパイラ オプションの対象になりません。Metadata referenced by your C# application is not subject to -langversion compiler option.

C# コンパイラのバージョンごとに言語仕様の拡張機能が含まれているため、 -langversion は、コンパイラの以前のバージョンと同じ機能を提供しません。Because each version of the C# compiler contains extensions to the language specification, -langversion does not give you the equivalent functionality of an earlier version of the compiler.

さらに、C# バージョンの更新は、一般的に主要な .NET Framework のリリースと一致しますが、新しい構文および機能は必ずしも特定のフレームワーク バージョンに関連付けられていません。Additionally, while C# version updates generally coincide with major .NET Framework releases, the new syntax and features are not necessarily tied to that specific framework version. 新機能では、C# リビジョンと共にリリースされる新しいコンパイラの更新プログラムを確実に必要としますが、各特定機能には、独自の最小の .NET API または共通言語ランタイムの要件があり、この要件によって、NuGet パッケージやその他のライブラリを含めることで下位レベルのフレームワークで実行できるようになります。While the new features definitely require a new compiler update that is also released alongside the C# revision, each specific feature has its own minimum .NET API or common language runtime requirements that may allow it to run on downlevel frameworks by including NuGet packages or other libraries.

使用する -langversion の設定に関係なく、現在のバージョンの共通言語ランタイムを使用して .exe や .dll を作成します。Regardless of which -langversion setting you use, you will use the current version of the common language runtime to create your .exe or .dll. 1 つの例外は、 -langversion:ISO-1 の下で機能する、フレンド アセンブリと -moduleassemblyname (C# コンパイラ オプション) です。One exception is friend assemblies and -moduleassemblyname (C# Compiler Option), which work under -langversion:ISO-1.

C# 言語バージョンを指定するその他の方法については、C# 言語のバージョンの選択に関するトピックを参照してください。For other ways to specify the C# language version, see the Select the C# language version article.

このコンパイラ オプションをプログラムで設定する方法については、「LanguageVersion」を参照してください。For information about how to set this compiler option programmatically, see LanguageVersion.

C# 言語仕様C# language specification

VersionVersion LinkLink 説明Description
C# 7.0 以降C# 7.0 and later 現在使用できませんnot currently available
C# 6.0C# 6.0 リンクLink C# 言語仕様バージョン 6 - 非公式ドラフト: .NET FoundationC# Language Specification Version 6 - Unofficial Draft: .NET Foundation
C# 5.0C# 5.0 PDF のダウンロードDownload PDF Standard ECMA-334 5th EditionStandard ECMA-334 5th Edition
C# 3.0C# 3.0 DOC のダウンロードDownload DOC C# 言語仕様バージョン 3.0:Microsoft CorporationC# Language Specification Version 3.0: Microsoft Corporation
C# 2.0C# 2.0 PDF のダウンロードDownload PDF Standard ECMA-334 4th EditionStandard ECMA-334 4th Edition
C# 1.2C# 1.2 DOC のダウンロードDownload DOC C# 言語仕様バージョン 1.2:Microsoft CorporationC# Language Specification Version 1.2: Microsoft Corporation
C# 1.0C# 1.0 DOC のダウンロードDownload DOC C# 言語仕様バージョン 1.0:Microsoft CorporationC# Language Specification Version 1.0: Microsoft Corporation

すべての言語機能をサポートするために必要な SDK の最小バージョンMinimum SDK version needed to support all language features

次の表は、SDK の最小バージョンに対応する言語バージョンをサポートする C# コンパイラを示しています。The following table lists the minimum versions of the SDK with the C# compiler that supports the corresponding language version:

C# バージョンC# version SDK の最小バージョンMinimum SDK version
C# 8.0C# 8.0 Microsoft Visual Studio/Build Tools 2019、バージョン 16.3 または .NET Core 3.0 SDKMicrosoft Visual Studio/Build Tools 2019, version 16.3, or .NET Core 3.0 SDK
C# 7.3C# 7.3 Microsoft Visual Studio/Build Tools 2017、バージョン 15.7Microsoft Visual Studio/Build Tools 2017, version 15.7
C# 7.2C# 7.2 Microsoft Visual Studio/Build Tools 2017、バージョン 15.5Microsoft Visual Studio/Build Tools 2017, version 15.5
C# 7.1C# 7.1 Microsoft Visual Studio/Build Tools 2017、バージョン 15.3Microsoft Visual Studio/Build Tools 2017, version 15.3
C# 7.0C# 7.0 Microsoft Visual Studio/Build Tools 2017Microsoft Visual Studio/Build Tools 2017
C# 6C# 6 Microsoft Visual Studio/Build Tools 2015Microsoft Visual Studio/Build Tools 2015
C# 5C# 5 Microsoft Visual Studio/Build Tools 2012、またはバンドルされている .Net Framework 4.5 コンパイラMicrosoft Visual Studio/Build Tools 2012 or bundled .NET Framework 4.5 compiler
C# 4C# 4 Microsoft Visual Studio/Build Tools 2010、またはバンドルされている .Net Framework 4.0 コンパイラMicrosoft Visual Studio/Build Tools 2010 or bundled .NET Framework 4.0 compiler
C# 3C# 3 Microsoft Visual Studio/Build Tools 2008、またはバンドルされている .Net Framework 3.5 コンパイラMicrosoft Visual Studio/Build Tools 2008 or bundled .NET Framework 3.5 compiler
C# 2C# 2 Microsoft Visual Studio/Build Tools 2005、またはバンドルされている .Net Framework 2.0 コンパイラMicrosoft Visual Studio/Build Tools 2005 or bundled .NET Framework 2.0 compiler
C# 1.0/1.2C# 1.0/1.2 Microsoft Visual Studio/Build Tools .NET 2002 またはバンドルされている .NET Framework 1.0 コンパイラMicrosoft Visual Studio/Build Tools .NET 2002 or bundled .NET Framework 1.0 compiler

関連項目See also