Yaklaşan değişikliklerin kodunuzu nasıl iyileştireceğini ve bir geliştirici olarak hayatınızı biraz daha kolaylaştıracağını keşfedin.

Merakla beklenen C# 12 Önizleme'nin ayrıntıları sızdırıldı ve dilde devrim yaratması gereken yeni özellikler hakkında bir ön bilgi verildi. Bu özellikler, kod okunabilirliğini iyileştirmek, performansı optimize etmek ve dilin gelişmiş yeteneklerini ortaya çıkarmak için büyük umut vaat ediyor.

Geliştirilmiş Anahtar İfadeleri

C# 8 tanıtıldı temel anahtar ifadeleri bu, karmaşık koşullu mantığı okunabilir bir biçimde kısaca ifade etmenizi sağlar. C# 12, anahtar ifadeleri için yeni bir kalıp eşleştirme sözdizimi sunarak bunu daha da ileriye taşıyor ve anlamlı ve özlü kod yazmayı daha da kolaylaştırıyor.

Aşağıdaki kod parçacığını göz önünde bulundurun.

var sonuç = nesne anahtar
{
int Ben Ne zaman ben > 0 => "Pozitif",
int Ben Ne zaman ben < 0 => "Olumsuz",
_ => "Sıfır"
};

Bu kod, bir tamsayı olup olmadığını belirlemek için anahtar ifadeleri kullanır. pozitif, olumsuz, veya

instagram viewer
sıfır. C# 12'de, yeni kalıp eşleştirme sözdizimini kullanarak bu kodu daha da basitleştirebilirsiniz:

var sonuç = nesne anahtar
{
> 0 => "Pozitif",
< 0 => "Olumsuz",
_ => "Sıfır"
};

Bu sözdizimi, Ne zaman anahtar kelime ve ilişkisel işleçleri doğrudan anahtar ifadesinde kullanın.

Sınıflar ve Yapılar için Birincil Oluşturucular

Artık birincil oluşturucuları herhangi bir şekilde oluşturabilirsiniz. sınıf veya yapı (hafif bir sınıf alternatifi). Birincil oluşturucuları kullanarak, sınıf bildirimine parametreler ekleyebilir ve bu değerleri sınıf gövdesi içinde kullanabilirsiniz.

C# 9, kayıtlar için konum sözdiziminin bir parçası olarak birincil oluşturucuları tanıttı. C# 12, bunları tüm yapılara ve sınıflara genişletir.

Parametreleri aşağıda gösterildiği gibi tür adından sonra köşeli parantez içine alabilirsiniz:

halk sınıf Öğrenci(int İD, sicim ad, IEnumerable<ondalık> notlar)
{
halkÖğrenci(int İD, sicim isim): Bu(id, isim, Numaralandırılabilir. boş<ondalık>()) { }
halkint kimlik => kimlik;
halksicim İsim { elde etmek; ayarlamak; } = ad. Kırp();
halkondalık GPA => notlar. Herhangi()? notlar. Ortalama(): 4.0M;
}

Bir birincil yapıcının parametreleri, bildirim tipinin tüm gövdesi boyunca kapsamdadır. Özellikleri veya alanları ayarlayabilir veya bunları yöntemlerde veya yerel işlevlerde değişken olarak kullanabilirsiniz. Bu parametreleri bir temel oluşturucuya da sağlayabilirsiniz.

Enterpolasyonlu Dizeler İyileştirmeleri

Enterpolasyonlu dizeler C# 6'dan beri var. C# 12'de artık karmaşık ifadeler kullanarak dizeler için dinamik değerler oluşturabilirsiniz.

int ben = 5;
sicim çıktı = $" i'nin değeri {Bence}ve karesi {i*i}.";
Konsol. Yazma Satırı (çıktı);

Bu kod "i'nin değeri 5 ve karesi 25" yazdırır.

Ek Türler için Yönergeleri Kullanma

C# 12 ile, yalnızca adlandırılmış türlere değil, herhangi bir türe takma ad vermek için using alias yönergesini kullanabilirsiniz. Demetler, diziler, işaretçiler veya diğer güvenli olmayan türler için anlamsal takma adlar oluşturabilirsiniz.

İşte birkaç örnek:

kullanarak Ölçüm = (sicim Birimler, int Mesafe);
kullanarak Birimler = int?;
Takma ad kullanım örneği:
halkgeçersizHesaplama(ölçüm ölçümü)
{
// Yöntem Gövdesi
}

Lambda İfade İyileştirmeleri

C# 12, parametreler için varsayılan değerleri tanımlamanıza izin vererek lambda ifadelerini güçlendirir. Sözdizimi, diğer varsayılan parametrelerinkiyle aynıdır:

Örneğin, (int arttırmaTo = 5) => arttırmaTo + 1 bir değer iletmezseniz lambda çağrısının kullanacağı advanceTo parametresi için varsayılan olarak 5 değerini ayarlar.

var artışWithDefault = (int artış = 5) => artım + 1;
artışWithDefault(); // 6
artışWithDefault(9); // 10

Bunun yanı sıra, daha etkili hale getirmek için lambda ifadelerine birçok başka geliştirme geldi.

Örneğin:

  • Artık lambda işlevleri içinde daha karmaşık ifadeler oluşturabilirsiniz.
  • Artık lambda ifadelerini, karmaşık sorguları basitleştiren ve performansı optimize eden ifade ağaçlarına dönüştürebilirsiniz.

Eşzamansız Akışlar

Yeni ile eşzamansız veri kaynakları arasında yineleme yapabilirsiniz. zaman uyumsuz akışlar C# 12'nin özelliği. Bu yeni yineleyici—her şeyi beklemek—bir dizi zaman uyumsuz veriyi yinelemenize yardımcı olur:

beklemekher biri için (var öğe içindeGetItemsAsync())
{
Konsol. Yazma Satırı (öğe.değer);
}

C# 12: Heyecan Verici Yeni Özelliklerle Devrim Yaratan Kod

C# 12 beklentisiyle, heyecan verici yeni özelliklerle oyunun kurallarını değiştiren bir güncelleme bekleyebilirsiniz. Gelişmiş anahtar ifadeleri, birincil oluşturucular ve lambda ifadelerindeki iyileştirmeler gibi bu ilerlemeler, kod basitliği, esneklik ve performansa güçlü bir şekilde odaklanıldığını gösterir.

C# 12, daha anlamlı, verimli ve güçlü kod yazmanıza olanak tanıyarak ileriye doğru önemli bir adım atmaya hazırlanıyor.