Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 19482|Svar: 2

[Kilde] C# 8.0 kan være en null-referencetype

[Kopier link]
Opslået den 26-3-2022 16:40:21 | | | |
Før C# 8.0 kunne alle referencetyper være null. Nullreferencetyper refererer til et sæt funktioner introduceret i C# 8.0, som kan bruges tilMinimer sandsynligheden for, at din kode forårsager runtime-throws。 Annullerbare referencetyper inkluderer tre funktioner for at undgå disse undtagelser, herunder muligheden for eksplicit at markere referencetyper som nullbare:

  • Optimeret statisk flowanalyse for at afgøre, om en variabel er null, før den ikke refereres.
  • Attributter, der bruges til at annotere API'et, så Stream Analytics bestemmer null-tilstanden.
  • Variabelannoteringer, som udviklere kan bruge til eksplicit at erklære den forventede nul-tilstand for en variabel.


Nulltilstandsanalyse og variabelannoteringer er deaktiveret som standard for eksisterende projekter, hvilket betyder, at alle referencetyper stadig kan nulstilles. Fra og med .NET 6 er disse funktioner aktiveret som standard for nye projekter.

Dokumentation:Hyperlink-login er synlig.

Hvad en referencetype, der kan være null, skal gøre.Minimer risikoen for, at din applikation kaster et System.NullReferenceException under kørsel

I et projekt, jeg udvikler med .NET 6, opretter jeg en Navnegenskab for en ny egenskab, der giver mig følgende advarsel:

Når man forlader konstruktøren, skal den ikke-nullbare egenskab "Navn" indeholde en ikke-nul værdi. Overvej at erklære egenskaben som kan være null.


Selvom det er en advarsel, er det meget irriterende! Hvordan løser man denne advarsel? Standardværdien for tilknytning er en tom streng, og koden er som følger:

Det vil sige, når egenskaben ikke tildeles manuelt, er standardværdien af egenskaben en tom streng.

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



løsning, find ud af, om variablen er null, før du bruger den, og hvis den er, så lad være med at køre koden nedenfor, ellers tror duVariablen kan aldrig være nul, kan brugesArgumentNullUndtagelse.KastIfNull(assemblyFuldnavn); Advarsler kan også fjernes! Med andre ord, hvis variablen er null, vil den kaste en undtagelse direkte under kørsel!

Resumé: C# 8.0 introducerede denne funktion, og jeg føler personligt, at det er for at forbedre udviklernes stringens og undgå at lave nogle lavniveaufejl.

For flere metodeløsninger, der kan være null, henvises til:Hyperlink-login er synlig.





Tidligere:Forespørg den fjernadresse på det nuværende projekts Git
Næste:ASP.NET Core (tolv) front-end JS, CSS-bundling og komprimering
Opslået den 26-3-2022 kl. 20:57:32 |
Lær at lære
Opslået den 28-3-2022 08:23:47 |
Kom og lær
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com