Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 19482|Odgovoriti: 2

[Vir] C# 8.0 je lahko ničelni referenčni tip

[Kopiraj povezavo]
Objavljeno 26. 3. 2022 ob 16:40:21 | | | |
Pred C# 8.0 so lahko vsi tipi referenc bili ničelni. Ničelni tipi referenc se nanašajo na nabor funkcij, uvedenih v C# 8.0 in jih je mogoče uporabiti zaZmanjšajte verjetnost, da bo vaša koda povzročila premike med izvajanjem。 Ničelni tipi referenc vključujejo tri funkcije, ki pomagajo preprečiti te izjeme, vključno z možnostjo eksplicitnega označevanja vrst referenc kot neveljavnih:

  • Optimizirana analiza statičnega toka za ugotavljanje, ali je spremenljivka ničelna, preden je nereferencirana.
  • Atributi, ki se uporabljajo za označevanje API-ja, da analitika tokov določi ničelno stanje.
  • Oznake spremenljivk, ki jih razvijalci lahko uporabijo za eksplicitno deklaracijo pričakovanega ničelnega stanja spremenljivke.


Analiza ničelnih stanj in označevanje spremenljivk sta privzeto onemogočeni za obstoječe projekte, kar pomeni, da so vse vrste referenc še vedno ničljive. Od .NET 6 naprej so te funkcije privzeto omogočene za nove projekte.

Dokumentacija:Prijava do hiperpovezave je vidna.

Kaj naj naredi referenčni tip, ki je lahko ničlen,Zmanjšajte možnost, da bo vaša aplikacija med izvajanjem sprožila System.NullReferenceException

V projektu, ki ga razvijam z .NET 6, ustvarim lastnost Name za novo lastnost, ki me opozori z naslednjim opozorilom:

Ob izhodu iz konstruktorja mora neničljiva lastnost "Name" vsebovati ne-ničelno vrednost. Razmislimo, da lastnost razglasimo kot je lahko ničla.


Čeprav je to opozorilo, je zelo nadležno! Kako popraviti to opozorilo? Privzeta vrednost za dodelitev je prazen niz, koda pa je naslednja:

To pomeni, da ko lastnost ni ročno dodeljena, je privzeta vrednost lastnosti prazen niz.

Pri uporabi lokalne spremenljivke,Vrsta je vrvica? lahko prav tako generira opozorila, kot je prikazano na spodnji sliki:



Rešitev, ugotovite, ali je spremenljivka ničelna, preden jo uporabite, in če je, ne izvajajte spodnje kode ali mislite, daSpremenljivka nikoli ne more biti ničelna, se lahko uporabiArgumentNullException.ThrowIfNull(assemblyFullName); Opozorila je mogoče tudi odstraniti! Z drugimi besedami, če je spremenljivka ničelna, bo med izvajanjem sprožila izjemo!

Povzetek: C# 8.0 je uvedel to funkcijo in osebno menim, da je namenjena izboljšanju zahtevnosti razvijalcev ter preprečevanju manjših napak.

Za več metodnih rešitev, ki so lahko ničelne, si oglejte:Prijava do hiperpovezave je vidna.





Prejšnji:Poizvedba po oddaljenem naslovu Git-a trenutnega projekta
Naslednji:ASP.NET Core (dvanajst) sprednji JS, CSS združevanje in stiskanje
Objavljeno 26. 3. 2022 ob 20:57:32 |
Uči se učiti
Objavljeno 2022-3-28 08:23:47 |
Pridi in se nauči
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com