Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 19482|Răspunde: 2

[Sursă] C# 8.0 poate fi un tip de referință nul

[Copiază linkul]
Postat la 26-03-2022 16:40:21 | | | |
Înainte de C# 8.0, toate tipurile de referință puteau fi nule. Tipurile de referință nule se referă la un set de caracteristici introduse în C# 8.0 care pot fi folosite pentruMinimizează probabilitatea ca codul tău să cauzeze throw-uri în timp real。 Tipurile de referință anulabile includ trei caracteristici care ajută la evitarea acestor excepții, inclusiv posibilitatea de a marca explicit tipurile de referință ca anulabile:

  • Analiză statică optimizată a fluxului pentru a determina dacă o variabilă este nulă înainte ca aceasta să nu fie referențiată.
  • Atribute folosite pentru a adnota API-ul astfel încât Stream Analytics să determine starea nulă.
  • Adnotări de variabile pe care dezvoltatorii le pot folosi pentru a declara explicit starea nulă așteptată a unei variabile.


Analiza stării nule și adnotările variabilelor sunt dezactivate implicit pentru proiectele existente, ceea ce înseamnă că toate tipurile de referință sunt încă nullabile. Începând cu .NET 6, aceste funcții sunt activate implicit pentru proiectele noi.

Documentație:Autentificarea cu hyperlink este vizibilă.

Ce tip de referință care poate fi nul este să facăMinimizează șansa ca aplicația ta să afișeze un System.NullReferenceException la rulare

Într-un proiect pe care îl dezvolt cu .NET 6, creez o proprietate Name pentru o proprietate nouă care îmi afișează următorul avertisment:

La ieșirea din constructor, proprietatea neanulabilă "Nume" trebuie să conțină o valoare ne-nulă. Ia în considerare declararea proprietății ca poate fi nulă.


Deși este un avertisment, este foarte enervant! Cum pot remedia acest avertisment? Valoarea implicită pentru atribuire este un șir gol, iar codul este următorul:

Adică, atunci când proprietatea nu este atribuită manual, valoarea implicită a proprietății este un șir gol.

Când se folosește o variabilă locală,Tipul este cu sfoară? De asemenea, pot genera avertismente, așa cum se arată în figura de mai jos:



Soluția, determinați dacă variabila este nulă înainte de a o folosi, iar dacă este, nu executați codul de mai jos, sau așa credețiVariabila nu poate fi niciodată nulă, poate fi folositArgumentNullException.ThrowIfNull(assemblyFullName); Avertismentele pot fi, de asemenea, eliminate! Cu alte cuvinte, dacă variabila este nulă, va genera o excepție direct în timpul runtime-ului!

Rezumat: C# 8.0 a introdus această funcție și, personal, simt că este pentru a îmbunătăți rigoarea dezvoltatorilor și a evita să facă unele greșeli de nivel scăzut.

Pentru mai multe soluții de metodă care pot fi nulle, vă rugăm să consultați:Autentificarea cu hyperlink este vizibilă.





Precedent:Interoghează adresa la distanță a Git-ului proiectului curent
Următor:ASP.NET Core (douăsprezece) front-end JS, bundling și compresie CSS
Postat pe 2022-3-26 20:57:32 |
Învață să înveți
Postat la 28-03-2022 08:23:47 |
Vino să înveți
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com