Useus-direktiivi mahdollistaa tyypin käytön, joka on määritelty nimiavaruudessa, ilman että kyseiselle tyypille on määritelty täysin pätevää nimiavaruutta. Globaalin modifikaattorin lisääminen useus-direktiiviin tarkoittaa, että using sovelletaan kaikkiin tiedostoihin kokouksessa (yleensä projektissa). Global using -direktiivi lisättiin C# 10:een. Syntaksi on:
Suositeltu käytäntö on laittaa globaali tuonti erilliseen tiedostoon (yksi jokaiselle projektille), esim. se voidaan nimetä:GlobalUsings.csTiedosto.
Microsoftin virallisen dokumentaation esittely:Hyperlinkin kirjautuminen on näkyvissä.
Laitamme Startup.cs:n viittaaman nimiavaruuden GlobalUsings.cs-tiedostoon, muistaen lisätä ennen käyttöäGlobaaliAvainsanat!! Koodi on seuraava:
Tässä vaiheessa kääntäjä raportoi virheen, jossa todetaan, että "funktio globaali komento ei ole saatavilla C# 8.0:ssa, käytä kieliversiota 10.0 tai uudempaa", kuten alla olevassa kuvassa näkyy:
Tässä tapauksessa, ottaen esimerkiksi ASP.NET Core 3.1 -projektin, sinun tarvitsee vain kaksoisnapsauttaa projektia (.csproj tiedosto) ja lisätä LangVersion Project-> PropertyGroup -solmuun, kuten seuraavassa kuvassa näkyy:
Tämä lause tarkoittaa, että projekti käyttää C# 10:n syntaksia C#:n kieliversioiden osalta:Hyperlinkin kirjautuminen on näkyvissä.
Tiedostoa ei raportoida virheeksi samaan aikaanStartup.cs Tiedoston viittaama nimiavaruus on harmaana, kuten alla olevassa kuvassa näkyy:
Poistamme Program.cs, Startup.cs:n viittaukset ja käännämme projektin uudelleen alla olevan kuvan mukaisesti:
käyttääILSpy_binaries_7.2.0.6702-preview2Tuloksena oleva WebApplication1.dll-tiedosto dekompaataan seuraavan kuvan mukaisesti:
Käynnistystiedostossa on edelleen käyttöviitteet, eikä GlobalUsings.cs tiedostoja generoida, joten globaali käyttö on vain syntaksisokeria, mikä yksinkertaistaa työlästä ohjelmointityötä ja parantaa huomattavasti työn tehokkuutta.
.NET 6Implisiittiset nimiavaruudetViittaukset saavutetaan myös käyttämällä globaalia käyttämisominaisuutta.
Tällä hetkellä eri oletusnimiavareita on lisätty eri SDK-tyypeille, ja olemassa olevat ovat seuraavat:
Microsoft.NET.Sdk:lle oletusnimiavaruus on seuraava:
For Microsoft.NET.Sdk.Web:
For Microsoft.NET.Sdk.Worker:
Jos haluat poistaa implisiittiset nimiavaruuden viittaukset käytöstä, voit poistaa tämän ominaisuuden kokonaan käytöstä DisableImplicitNamespaceImportsin kautta seuraavasti:
Jos haluat vain poistaa viittaukset Microsoft.NET.Sdk.Webiin, voit konfiguroida DisableImplicitNamespaceImports_Web seuraavasti:
Luodaan uusi .NET 6.0 -konsoliprojekti testattavaksi, ja koko projektissa on vain Program.cs yksi tiedosto, kuten alla olevassa kuvassa näkyy:
ConsoleApp1.csproj on konfiguroitu seuraavasti:
Missä on globaali käyttödirektiivi? Avaa obj-hakemisto (joka sisältää käännösprosessin aikana generoidut väliaikaiset tiedostot) ja etsi se Debug\net6.0-hakemistostaConsoleApp1.GlobalUsings.g.csTiedosto:
ConsoleApp1.GlobalUsings.g.cs tiedostot luodaan automaattisesti projektin ImplicitUsings -ominaisuusasetusten perusteella.
(Loppu)
|