Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 19482|Antwoord: 2

[Bron] C# 8.0 kan een nullreferentietype zijn

[Link kopiëren]
Geplaatst op 26-3-2022 16:40:21 | | | |
Voor C# 8.0 konden alle referentietypen null zijn. Nullreferentietypen verwijzen naar een set kenmerken die in C# 8.0 zijn geïntroduceerd en die gebruikt kunnen worden voorMinimaliseer de kans dat je code runtime throws veroorzaakt。 Nulbare referentietypen bevatten drie functies om deze uitzonderingen te helpen vermijden, waaronder de mogelijkheid om referentietypen expliciet als ongeldig te markeren:

  • Geoptimaliseerde statische stromingsanalyse om te bepalen of een variabele nul is voordat deze wordt gerefereerd.
  • Attributen die worden gebruikt om de API te annoteren zodat Stream Analytics de null-status bepaalt.
  • Variabelenannotaties die ontwikkelaars kunnen gebruiken om expliciet de verwachte nultoestand van een variabele te declareren.


Null state analyse en variabelenannotaties zijn standaard uitgeschakeld voor bestaande projecten, wat betekent dat alle referentietypen nog steeds nul kunnen maken. Vanaf .NET 6 zijn deze functies standaard ingeschakeld voor nieuwe projecten.

Documentatie:De hyperlink-login is zichtbaar.

Wat een referentietype dat null kan zijn moet doenMinimaliseer de kans dat je applicatie een System.NullReferenceException tijdens runtime gooit

In een project dat ik ontwikkel met .NET 6, maak ik een naam-eigenschap aan voor een nieuwe eigenschap die mij de volgende waarschuwing geeft:

Bij het verlaten van de constructor moet de niet-nullbare eigenschap "Naam" een niet-nulle waarde bevatten. Overweeg om de eigenschap als nul te verklaren.


Hoewel het een waarschuwing is, is het erg irritant! Hoe los je deze waarschuwing op? De standaardwaarde voor toewijzing is een lege string, en de code is als volgt:

Dat wil zeggen, wanneer de eigenschap niet handmatig wordt toegewezen, is de standaardwaarde van de eigenschap een lege string.

Wanneer een lokale variabele wordt gebruikt,Het type is touw? kan ook waarschuwingen genereren, zoals getoond in de onderstaande figuur:



oplossing: bepaal of de variabele null is voordat je hem gebruikt, en als dat zo is, voer dan de onderstaande code niet uit, anders denk je dat je denktDe variabele kan nooit nul zijn, kan worden gebruiktArgumentNullUitzondering.GooiAlsNull(assemblyVolNaam); Waarschuwingen kunnen ook worden verwijderd! Met andere woorden, als de variabele null is, zal er direct tijdens runtime een uitzondering worden gegooid!

Samenvatting: C# 8.0 introduceerde deze functie, en ik denk persoonlijk dat het bedoeld is om de nauwkeurigheid van ontwikkelaars te verbeteren en te voorkomen dat er kleine fouten worden gemaakt.

Voor meer methodoplossingen die null kunnen zijn, zie alstublieft:De hyperlink-login is zichtbaar.





Vorig:Zoek het externe adres van de Git van het huidige project op
Volgend:ASP.NET Core (twaalf) front-end JS, CSS-bundling en compressie
Geplaatst op 26-3-2022 20:57:32 |
Leer leren
Geplaatst op 28-3-2022 08:23:47 |
Kom en leer
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com