Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 19482|Svare: 2

[Kilde] C# 8.0 kan være en nullreferansetype

[Kopier lenke]
Publisert 26.03.2022 16:40:21 | | | |
Før C# 8.0 kunne alle referansetyper være null. Nullreferansetyper refererer til et sett med funksjoner introdusert i C# 8.0 som kan brukes forMinimer sannsynligheten for at koden din forårsaker kjøretidskast。 Nullbare referansetyper inkluderer tre funksjoner for å unngå disse unntakene, inkludert muligheten til eksplisitt å markere referansetyper som nullbare:

  • Optimalisert statisk strømningsanalyse for å avgjøre om en variabel er null før den blir ureferert.
  • Attributter som brukes til å annotere API-et slik at Stream Analytics bestemmer null-tilstanden.
  • Variabelannotasjoner som utviklere kan bruke for eksplisitt å erklære forventet nulltilstand for en variabel.


Nulltilstandsanalyse og variabelannotasjoner er deaktivert som standard for eksisterende prosjekter, noe som betyr at alle referansetyper fortsatt kan nulles. Fra og med .NET 6 er disse funksjonene aktivert som standard for nye prosjekter.

Dokumentasjon:Innloggingen med hyperkoblingen er synlig.

Hva en referansetype som kan være null skal gjøreMinimer sjansen for at applikasjonen din kaster en System.NullReferenceException under kjøretid

I et prosjekt jeg utvikler med .NET 6, oppretter jeg en navnegenskap for en ny egenskap som gir meg følgende advarsel:

Når man forlater konstruktøren, må den ikke-nullbare egenskapen "Navn" inneholde en ikke-null verdi. Vurder å erklære egenskapen som kan være null.


Selv om det er en advarsel, er det veldig irriterende! Hvordan fikse denne advarselen? Standardverdien for tildeling er en tom streng, og koden er som følger:

Det vil si, når egenskapen ikke tildeles manuelt, er standardverdien til egenskapen en tom streng.

Når man bruker en lokal variabel,Typen er tråd? kan også generere advarsler, som vist i figuren nedenfor:



Løsning: Finn ut om variabelen er null før du bruker den, og hvis den er det, ikke kjør koden under, eller du trorVariabelen kan aldri være null, kan brukesArgumentNullUnntak.KastIfNull(assemblyFullName); Advarsler kan også fjernes! Med andre ord, hvis variabelen er null, vil den kaste et unntak direkte under kjøretid!

Sammendrag: C# 8.0 introduserte denne funksjonen, og jeg føler personlig at den er for å forbedre utviklernes grundighet og unngå å gjøre noen lavnivåfeil.

For flere metodeløsninger som kan være null, vennligst se til:Innloggingen med hyperkoblingen er synlig.





Foregående:Søk i den eksterne adressen til det nåværende prosjektets Git
Neste:ASP.NET Core (tolv) front-end JS, CSS-pakking og komprimering
Publisert 26.03.2022 kl. 20:57:32 |
Lær å lære
Publisert 28.03.2022 08:23:47 |
Kom og lær
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com