Direktif using memungkinkan penggunaan jenis yang ditentukan dalam namespace tanpa menentukan namespace yang sepenuhnya memenuhi syarat untuk jenis tersebut. Menambahkan pengubah global ke direktif using berarti bahwa penggunaan akan diterapkan ke semua file dalam kompilasi (biasanya proyek). Direktif penggunaan global ditambahkan ke C# 10. Sintaksnya adalah:
Praktik yang disarankan adalah menempatkan impor global dalam file terpisah (satu untuk setiap proyek), misalnya dapat diberi nama:GlobalUsings.csArsip.
Pengenalan dokumentasi resmi Microsoft:Login hyperlink terlihat.
Kami memasukkan namespace yang direferensikan oleh Startup.cs ke dalam file GlobalUsings.cs, mengingat untuk menambahkan sebelum menggunakanglobalKata kunci!! Kodenya adalah sebagai berikut:
Pada saat ini, kompiler akan melaporkan kesalahan yang menyatakan bahwa "fungsi global menggunakan perintah tidak tersedia di C# 8.0, silakan gunakan versi bahasa 10.0 atau yang lebih baru", seperti yang ditunjukkan pada gambar di bawah ini:
Dalam hal ini, mengambil proyek ASP.NET Core 3.1 sebagai contoh, Anda hanya perlu mengklik dua kali pada proyek (file .csproj) dan menambahkan LangVersion ke simpul Project-> PropertyGroup, seperti yang ditunjukkan pada gambar berikut:
Kalimat ini berarti bahwa proyek menggunakan sintaks C# 10 mengenai versi bahasa C#:Login hyperlink terlihat.
File tidak dilaporkan sebagai kesalahan, pada saat yang samaStartup.cs Namespace yang direferensikan oleh file berwarna abu-abu, seperti yang ditunjukkan pada gambar di bawah ini:
Kami menghapus referensi Program.cs, Startup.cs, lalu mengkompilasi ulang proyek seperti yang ditunjukkan pada gambar di bawah ini:
pakaiILSpy_binaries_7.2.0.6702-pratinjau2File WebApplication1.dll yang dihasilkan didekompilasi seperti yang ditunjukkan pada gambar berikut:
File startup masih memiliki referensi penggunaan, dan tidak ada file GlobalUsings.cs yang dihasilkan, jadi penggunaan global hanyalah gula sintaks, yang menyederhanakan beberapa pekerjaan pemrograman yang membosankan dan sangat meningkatkan efisiensi kerja.
.NET 6Namespace implisitReferensi juga dicapai dengan menggunakan fitur penggunaan global.
Saat ini, namespace default yang berbeda ditambahkan untuk jenis SDK yang berbeda, dan yang ada adalah sebagai berikut:
Untuk Microsoft.NET.Sdk, namespace default adalah sebagai berikut:
Untuk Microsoft.NET.Sdk.Web:
Untuk Microsoft.NET.Sdk.Worker:
Jika Anda ingin menonaktifkan referensi namespace implisit, Anda dapat menonaktifkan fitur ini sepenuhnya melalui DisableImplicitNamespaceImports, sebagai berikut:
Jika Anda hanya ingin menonaktifkan referensi ke Microsoft.NET.Sdk.Web, Anda dapat mengonfigurasi DisableImplicitNamespaceImports_Web sebagai berikut:
Mari kita buat proyek konsol .NET 6.0 baru untuk pengujian, dan seluruh proyek hanya memiliki Program.cs satu file, seperti yang ditunjukkan pada gambar di bawah ini:
ConsoleApp1.csproj dikonfigurasi sebagai berikut:
Di mana arahan penggunaan global? Buka direktori obj (yang menampung file sementara perantara yang dihasilkan selama proses kompilasi) dan temukan di direktori Debug\net6.0ConsoleApp1.GlobalUsings.g.csArsip:
File ConsoleApp1.GlobalUsings.g.cs dibuat secara otomatis berdasarkan pengaturan properti ImplicitUsings proyek.
(Akhir)
|