C# dili sürüm oluşturma

En son C# derleyicisi, projenizin hedef çerçevesini veya çerçevelerini temel alan varsayılan bir dil sürümünü belirler. Visual Studio değeri değiştirmek için bir kullanıcı arabirimi sağlamaz, ancak csproj dosyasını düzenleyerek bunu değiştirebilirsiniz. Varsayılan seçenek, hedef çerçevenizle uyumlu en son dil sürümünü kullanmanızı sağlar. Projenizin hedefiyle uyumlu en son dil özelliklerine erişim elde edebilirsiniz. Bu varsayılan seçenek, hedef çerçevenizde kullanılabilir olmayan türler veya çalışma zamanı davranışı gerektiren bir dil kullanmamanızı da sağlar. Varsayılandan daha yeni bir dil sürümü seçmek, derleme zamanı ve çalışma zamanı hatalarını tanılamanın zor olmasına neden olabilir.

C# 12 yalnızca .NET 8 ve daha yeni sürümlerde desteklenir. C# 11 yalnızca .NET 7 ve daha yeni sürümlerde desteklenir. C# 10 yalnızca .NET 6 ve daha yeni sürümlerde desteklenir.

.NET sürümlerinin Visual Studio sürümleri tarafından desteklendiği ayrıntılar için Visual Studio platform uyumluluk sayfasına bakın. .NET sürümlerinin Mac için Visual Studio sürümleri tarafından hangileri desteklendiği hakkında ayrıntılı bilgi için Mac için Visual Studio platform uyumluluk sayfasına bakın. C# sürümleriyle Mono uyumluluğu için Mono sayfasında C# olup olmadığını denetleyin.

Defaults

Derleyici, şu kurallara göre bir varsayılan belirler:

Hedef Sürüm Varsayılan C# dil sürümü
.NET 8.x C# 12
.NET 7.x C# 11
.NET 6.x C# 10
.NET 5.x C# 9.0
.NET Core 3.x C# 8.0
.NET Core 2.x C# 7.3
.NET Standard 2.1 C# 8.0
.NET Standard 2.0 C# 7.3
.NET Standard 1.x C# 7.3
.NET Framework tümü C# 7.3

Projeniz ilgili önizleme dili sürümüne sahip bir preview çerçeveyi hedeflediyse, kullanılan dil sürümü önizleme dili sürümüdür. Yayımlanan bir .NET Core sürümünü hedefleyen projeleri etkilemeden, herhangi bir ortamda bu önizlemeyle en son özellikleri kullanırsınız.

Önemli

Visual Studio 2017 için yeni proje şablonu, yeni proje dosyalarına bir <LangVersion>latest</LangVersion> girdi ekledi. Bu projeler için hedef çerçeveyi yükseltirseniz, <LangVersion> ayar yeni hedef çerçeve için varsayılanı geçersiz kılabilir. Projenizin hedef çerçeveniz için önerilen derleyici sürümünü kullandığından emin olmak için proje dosyanızdan öğesini kaldırdığınızdan <LangVersion>latest</LangVersion> emin olun. Daha yeni dil özelliklerine erişmek için hedef çerçeveyi güncelleştirebilirsiniz.

Varsayılanı geçersiz kıl

C# sürümünüzü açıkça belirtmeniz gerekiyorsa, bunu çeşitli yollarla yapabilirsiniz:

İpucu

Visual Studio'daki dil sürümünü proje özellikleri sayfasında görebilirsiniz. Oluştur sekmesinin altında Gelişmiş bölmesi seçili sürümü görüntüler.

Şu anda hangi dil sürümünü kullandığınızı öğrenmek için kodunuza (büyük/küçük harfe duyarlı) yerleştirin #error version . Bu, derleyicinin kullanılan derleyici sürümünü ve seçili geçerli dil sürümünü içeren bir iletiyle birlikte CS8304 derleyici hatası bildirmesini sağlar. Daha fazla bilgi için bkz. #error (C# Başvurusu).

Proje dosyasını düzenleme

Proje dosyanızda dil sürümünü ayarlayabilirsiniz. Örneğin, önizleme özelliklerine açıkça erişmek istiyorsanız aşağıdakine benzer bir öğe ekleyin:

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

değeri preview , derleyicinizin desteklediği en son kullanılabilir önizleme C# dil sürümünü kullanır.

Birden çok proje yapılandırma

Birden çok proje yapılandırmak için, genellikle çözüm dizininizde öğesini içeren <LangVersion> bir Directory.Build.props dosyası oluşturabilirsiniz. Directory.Build.props dosyasına aşağıdaki ayarı ekleyin:

<Project>
 <PropertyGroup>
   <LangVersion>preview</LangVersion>
 </PropertyGroup>
</Project>

Bu dosyayı içeren dizinin tüm alt dizinlerindeki derlemeler artık önizleme C# sürümünü kullanıyor. Daha fazla bilgi için bkz . Derlemenizi özelleştirme.

C# dil sürümü başvurusu

Aşağıdaki tabloda tüm geçerli C# dil sürümleri gösterilmektedir. Eski derleyiciler her değeri anlamayabilir. En son .NET SDK'sını yüklerseniz, listelenen her şeye erişebilirsiniz.

Değer Anlamı
preview Derleyici, en son önizleme sürümündeki tüm geçerli dil söz dizimini kabul eder.
latest Derleyici, derleyicinin en son yayımlanan sürümünden (ikincil sürüm dahil) söz dizimini kabul eder.
latestMajor
veya default
Derleyici, derleyicinin en son yayımlanan ana sürümünden söz dizimini kabul eder.
12.0 Derleyici yalnızca C# 12 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
11.0 Derleyici yalnızca C# 11 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
10.0 Derleyici yalnızca C# 10 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
9.0 Derleyici yalnızca C# 9 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
8.0 Derleyici yalnızca C# 8.0 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
7.3 Derleyici yalnızca C# 7.3 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
7.2 Derleyici yalnızca C# 7.2 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
7.1 Derleyici yalnızca C# 7.1 veya daha düşük bir sürüme dahil edilen söz dizimini kabul eder.
7 Derleyici yalnızca C# 7.0 veya daha düşük bir sürüme dahil edilen söz dizimini kabul eder.
6 Derleyici yalnızca C# 6.0 veya daha düşük bir sürüme dahil edilen söz dizimini kabul eder.
5 Derleyici yalnızca C# 5.0 veya daha düşük bir sürüme dahil edilen söz dizimini kabul eder.
4 Derleyici yalnızca C# 4.0 veya daha düşük bir sürüme dahil edilen söz dizimini kabul eder.
3 Derleyici yalnızca C# 3.0 veya daha düşük bir sürümde yer alan söz dizimini kabul eder.
ISO-2
veya 2
Derleyici yalnızca ISO/IEC 23270:2006 C# (2.0) içinde yer alan söz dizimini kabul eder.
ISO-1
veya 1
Derleyici yalnızca ISO/IEC 23270:2003 C# (1.0/1.2) içinde yer alan söz dizimini kabul eder.

Not

Değerle LangVersion belirtilmesi default, LangVersion seçeneğinin atlanmasından farklıdır. Belirtme, default hedef çerçeveyi hesaba katmadan derleyicinin desteklediği dilin en son sürümünü kullanır. Örneğin, Visual Studio 2022'nin geçerli sürümünden .NET 6'yı hedefleyen bir proje oluştururken, LangVersion belirtilmezse C# 10 kullanılır ancak LangVersion olarak ayarlanırsa defaultC# 12 kullanılır.