Using direktifi, bir tür için tam nitelikli bir ad alanı belirtilmeden bir namespace'de tanımlanan bir türün kullanılmasına izin verir. Küresel modifikatörün using direktifine eklenmesi, using işleminin derlemedeki tüm dosyalara (genellikle bir proje) uygulanacağı anlamına gelir. Küresel kullanım direktifi C# 10'a eklendi. Sözdizimi şöyledir:
Önerilen uygulama, küresel içe aktarmayı ayrı bir dosyaya (her proje için bir tane) koymaktır; örneğin, isimlendirilebilir:GlobalUsings.csDosya.
Microsoft resmi dokümantasyon girişi:Bağlantı girişi görünür.
Startup.cs tarafından referans verilen isim alanını GlobalUsings.cs dosyasına koyduk, eklemeyi hatırlayarakküreselAnahtar kelimeler!! Kod şöyledir:
Bu sırada, derleyici aşağıdaki şekilde gösterildiği gibi, "komut kullanılarak küresel fonksiyon C# 8.0'da mevcut değil, lütfen dil sürümü 10.0 veya daha sonrasını kullanın" şeklinde bir hata rapor edecektir:
Bu durumda, ASP.NET Core 3.1 projesini örnek alarak, sadece projeye (.csproj dosyası) çift tıklamanız ve aşağıdaki şekilde gösterildiği gibi Project-> PropertyGroup düğümüne LangVersion'u eklemeniz yeterlidir:
Bu cümle, projenin C# 10 sözdizimi kullanılarak C# dil sürümleriyle ilgili olduğu anlamına gelir:Bağlantı girişi görünür.
Dosya aynı zamanda hata olarak bildirilmezStartup.cs Dosyanın referans verdiği isim alanı gri olarak gösterilmiştir, aşağıdaki şekilde gösterildiği gibi:
Program.cs, Startup.cs referanslarını kaldırıyoruz ve ardından aşağıdaki görselde gösterildiği gibi projeyi yeniden derliyoruz:
kullanmakILSpy_binaries_7.2.0.6702-önizleme2Ortaya çıkan WebApplication1.dll dosyası, aşağıdaki görselde gösterildiği gibi decompile edilir:
Başlangıç dosyasında hâlâ referanslar var ve GlobalUsings.cs dosya oluşturulmuyor, bu yüzden global kullanım sadece sözdizimi şekeridir, bu da bazı sıkıcı programlama işlerini basitleştirir ve iş verimliliğini büyük ölçüde artırır.
.NET 6İmplicit isim alanlarıReferanslar ayrıca küresel kullanma özelliği kullanılarak sağlanır.
Şu anda, farklı SDK türleri için farklı varsayılan isim alanları eklenmiştir ve mevcut olanlar şunlardır:
Microsoft.NET.Sdk için varsayılan isim alanı şu şekildedir:
Microsoft.NET.Sdk.Web için:
Microsoft.NET.Sdk.Worker için:
Örtük namespace referanslarını devre dışı bırakmak isterseniz, bu özelliği DisableImplicitNamespaceImports üzerinden tamamen devre dışı bırakabilirsiniz, aşağıdaki gibi:
Sadece Microsoft.NET.Sdk.Web referanslarını devre dışı bırakmak istiyorsanız, DisableImplicitNamespaceImports_Web aşağıdaki şekilde yapılandırabilirsiniz:
Test için yeni bir .NET 6.0 konsol projesi oluşturalım ve tüm projenin yalnızca Program.cs dosyası var, aşağıdaki şekilde gösterildiği gibi:
ConsoleApp1.csproj aşağıdaki şekilde yapılandırılmıştır:
Küresel kullanım direktifi nerede? Derleme sürecinde oluşturulan ara geçici dosyaları barındıran obj dizinini açın ve Debug\net6.0 dizininde bulunConsoleApp1.GlobalUsings.g.csDosya:
ConsoleApp1.GlobalUsings.g.cs dosyaları, projenin ImplicitUsings özellik ayarlarına göre otomatik olarak oluşturulur.
(Son)
|