Aracılığıyla paylaş


C# dil sürümünü yapılandırma

Bu makaledeki bilgiler .NET 5 ve üzeri için geçerlidir. UWP projeleri için, UWP sürümü seçmemakalesindeki bu bilgilere bakın.

Visual Studio'da, varsayılan sürüm projenin hedef çerçevesiyle (TFM) hizalandığından, kullanıcı arabirimi aracılığıyla dil sürümünü değiştirme seçeneği devre dışı bırakılır. Bu varsayılan yapılandırma, dil özellikleri ve çalışma zamanı desteği arasında uyumluluk sağlar. Visual Studio'da dil sürümünü değiştirmek için projenin hedef çerçevesini değiştirin.

Örneğin, hedef TFM (örneğin, .NET 6'den .NET 9) değiştirilmesi, dil sürümünü C# 10'dan C# 13'e uygun şekilde güncelleştirir. Bu yaklaşım çalışma zamanı uyumluluğuyla ilgili sorunları önler ve desteklenmeyen dil özellikleri nedeniyle beklenmeyen derleme hatalarını en aza indirir.

Otomatik olarak seçilenden farklı belirli bir dil sürümüne ihtiyacınız varsa, varsayılan ayarları doğrudan proje dosyasında geçersiz kılmak için bu makaledeki yöntemlere bakın.

Uyarı

öğesinin LangVersion olarak latest ayarlanması önerilmez. ayarı, latest yüklenen derleyicinin en son sürümünü kullandığı anlamına gelir. latest değeri makineden makineye değişebilir ve bu durum derlemelerin güvenilir olmamasına sebep olabilir. Buna ek olarak, geçerli SDK'da yer almamış çalışma zamanı veya kitaplık özellikleri gerektirebilecek dil özelliklerini etkinleştirir.

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.

Hangi dil sürümünü kullandığınızı öğrenmek için kodunuza #error version (büyük/küçük harfe duyarlı) yerleştirin. Bu pragma, derleyicinin derleyici sürümünü ve seçili geçerli dil sürümünü içeren bir iletiyle cs8304 derleyici hatası bildirmesini sağlar. Bu pragma hakkında daha fazla bilgi için bakınız #error (C# Başvurusu).

Proje dosyasını düzenleme

Proje dosyanızda dil sürümünü ayarlayabilirsiniz. Proje dosyası, projenizin kök klasöründeki dosyadır *.csproj . Örneğin, önizleme özelliklerine açıkça erişmek istiyorsanız aşağıdaki örneğe benzer bir öğe ekleyin:

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

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

Birden çok proje yapılandırma

Birden çok C# projesi yapılandırmak için, genellikle çözüm dizininizde öğesini içeren bir <LangVersion> 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 Derlemenizi özelleştirme bölümüne bakın.

Uyarı

C# ve VB sürümleri farklıdır. Alt dizinlerin her iki dil için de proje içerdiği bir klasör için Directory.Build.Props dosyasını kullanmayın. Sürümler eşleşmiyor.

C# dil sürümü referansı

Önemli

Hedef TFM'nizle ilişkilendirilmiş sürümden daha yeni bir C# dil sürümünün kullanılması desteklenmez.

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ünün (ikincil sürüm dahil) söz dizimi özelliklerini kabul eder.
latestMajor
veya default
Derleyici, derleyicinin en son yayımlanan ana sürümünden söz dizimini kabul eder.
14.0 Derleyici yalnızca C# 14 veya daha düşük bir sürümde bulunan söz dizimini kabul eder.
13.0 Derleyici yalnızca C# 13 veya daha düşük bir sürümde bulunan 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.