C# Kullanım Yönergeleri ve .NET 8 Tip Takma Adları
C# dilindeki using anahtar kelimesi birden fazla işlev yerine getirir ve onun temel formu ile yeni yetenekleri arasındaki fark, çoğu geliştiricinin fark ettiğinden daha geniştir. Ad alanı kısayolları başından beri var olmuştur, statik sınıf içe aktarmaları .NET 6 ile gelmiştir ve .NET 8, alias söz dizimini demetler dahil olmak üzere herhangi bir türü kapsayacak şekilde genişletmiştir. Üç formun tümünü bilmek, tekrar eden tür deklarasyonlarını bir dosyanın başında okunabilir bir isime dönüştürmenizi sağlar.
Bu kılavuz, Tim Corey'nin son özellikler üzerinden yaptığı detaylı anlatım temelinde, bir .NET 8 konsol uygulamasındaki using direktifinin her formunu inceler. Tanıdık namespace kısayolundan yeni tür takma adı sözdizimine kadar inşa edeceğiz.
Başlangıç Noktası: Temel Namespace Yönergesi
[0:35 - 1:35] Kurulum, her yönergenin kodda açıkça görülmesi için örtük kullanımları kapatarak başlar. Üstte hiçbir using beyanı olmadığında, Console.WriteLine çağrısı, tam nitelikli adı gerektirir: System.Console.WriteLine. Tek bir yönerge eklemek bunu çözer:
using System;using System;Bu tek satır, System içindeki her türü kısa adıyla erişilebilir hale getirir. Yönerge, kütüphane anlamında bir içe aktarım değildir; yeni bir kod içeri çekilmez. Bu, derleyicinin niteliksiz bir tür adıyla karşılaştığında nerede arayacağını söyleyen bir namespace kısayoludur.
Statik Kullanımı: Sınıf Adını Atlamak
[2:19 - 2:45] using static formu, bir ad alanı yerine belirli bir statik sınıfı hedef alır. System.Console ile işaret etmek, o sınıfın her statik üyesini, sınıf ön eki olmadan erişilebilir hale getirir:
using static System.Console;
WriteLine("Hello, world!");using static System.Console;
WriteLine("Hello, world!");Console.WriteLine yerine, doğrudan WriteLine çağrılır. .NET 6'da gelen bu form, bir dosyanın aynı statik sınıfı tekrarlıklı olarak çağırması durumunda en kullanışlıdır. Tekrarlanan sınıf adını ortadan kaldırmak, her çağrı yerinde görsel karmaşayı azaltır.
Tür Takma Adları: Herhangi Bir Türü Adlandırma
[3:41 - 6:40] .NET 8, alias söz dizimini, using'nin herhangi bir türe kısa ad atayabilmesi için genişletti. Motivasyon oluşturan bir durum adlandırılmış tuptur. Demetler, bir yöntemin tam sınıf tanımı olmadan birkaç ilişkili değeri geri göndermesi gerektiğinde yaygın geri dönüş türleridir; ancak bir dosyada aynı demet türünün birden fazla bildirimi çok fazla tekrar üretir:
// Without an alias, each declaration repeats the full tuple type
(string FirstName, string LastName) GetUser() { ... }
(string FirstName, string LastName) person = GetUser();// Without an alias, each declaration repeats the full tuple type
(string FirstName, string LastName) GetUser() { ... }
(string FirstName, string LastName) person = GetUser();Bir tür takma adı bunu dosyanın başında tek bir bildirime indirger:
using Person = (string FirstName, string LastName);using Person = (string FirstName, string LastName);Dosyada o noktadan itibaren Person, tam demet tanımının yerine geçer:
Person GetUser() { ... }
Person person = GetUser();Person GetUser() { ... }
Person person = GetUser();Takma ad yalnızca beyan edildiği dosya içindedir. Uygulama genelinde yayılmaz. Türün proje genelinde kullanılmasına ihtiyaç duyuluyorsa, bir kayıt veya sınıf uygun seçimdir.
Takma Ad vs. Kayıt veya Sınıf
[5:32 - 6:23] Ortak bir soru ortaya çıkar: Person bir kayda benziyorsa, neden sadece bir tane tanımlamıyoruz? Cevap, kapsam ve ağırlığa dayanıyor. Bir kayıt veya sınıf, projenin tamamında bulunan, kendi dosyasını taşıyan ve kod tabanı geliştikçe bakımı yapılması gereken adlandırılmış bir türdür. Bir demet takma adı, dosya içi bir kolaylıktır. Bir sınıf dosyasında iki veya üç kez kullandığınız iki alanlı bir demet için tam tür tanımı oluşturmak, takma adın önlediği bakım yükünü beraberinde getirir. .NET ekibinin amacı, ham bir tup ile tam bir sınıf arasında bir ikili seçim zorlamadan çeşitli seçenekler sunmaktır.
Sonuç
Üç using formu, farklı ihtiyaçları kapsar. Temel ad alanı direktifi, bir dosya boyunca nitelikli tür adlarını kısaltırken, using static statik üye çağrılarında sınıf ön ekini kaldırır. .NET 8 tür takma adı, demetler dahil her tür için okunabilir bir ad atar ve tek bir dosyayla sınırlıdır. Her form, kodunuzun temel davranışını değiştirmeden tekrarları azaltır.
Tim Corey'nin YouTube kanalında videonun tam halini izleyin, çalışan bir .NET 8 projesinde tüm üç formun canlı demosu için.

