Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 19482|Vastaus: 2

[Lähde] C# 8.0 voi olla nollaviitetyyppi

[Kopioi linkki]
Julkaistu 2022-3-26 16:40:21 | | | |
Ennen C# 8.0:aa kaikki viitetyypit saattoivat olla nulleja. Null-viitetyypit viittaavat joukkoon ominaisuuksia, jotka esiteltiin C# 8.0:ssa ja joita voidaan käyttääMinimoi todennäköisyys, että koodisi aiheuttaa ajonaikaisia heittoja。 Nollattavat viitetyypit sisältävät kolme ominaisuutta näiden poikkeusten välttämiseksi, mukaan lukien mahdollisuus merkitä viitetyypit nimenomaisesti nollattaviksi:

  • Optimoitu staattinen virtausanalyysi sen määrittämiseksi, onko muuttuja nolla ennen kuin sitä ei viitdata.
  • Attribuutit, joita käytetään API:n annotointiin, jotta Stream Analytics määrittää null-tilan.
  • Muuttujamerkinnät, joita kehittäjät voivat käyttää ilmaistakseen muuttujan odotetun nollatilan eksplisiittisesti.


Nollatila-analyysi ja muuttujien annotaatiot ovat oletuksena pois käytöstä olemassa olevista projekteista, mikä tarkoittaa, että kaikki viitetyypit ovat edelleen nollattavissa. Alkaen .NET 6:sta, nämä ominaisuudet ovat oletuksena käytössä uusissa projekteissa.

Dokumentaatio:Hyperlinkin kirjautuminen on näkyvissä.

Mikä viitetyyppi, joka voi olla nolla, on tehdäMinimoi mahdollisuus, että sovelluksesi heittää System.NullReferenceExceptionin ajonaikaisesti

Projektissa, jota kehitän .NET 6:lla, luon Name-ominaisuuden uudelle ominaisuudelle, joka antaa seuraavan varoituksen:

Kun konstruktori poistuu, ei-nollattavalla ominaisuudella "Nimi" täytyy olla ei-nollaarvo. Harkitse omaisuuden julistamista mitättömyydeksi.


Vaikka se onkin varoitus, se on todella ärsyttävää! Miten korjata tämä varoitus? Oletusarvo on tyhjä merkkijono, ja koodi on seuraava:

Eli kun ominaisuutta ei ole manuaalisesti määritetty, ominaisuuden oletusarvo on tyhjä merkkijono.

Kun käytetään paikallista muuttujaa,Tyyppi on lanka? voi myös aiheuttaa varoituksia, kuten alla olevassa kuvassa näkyy:



ratkaisu, selvitä, onko muuttuja nolla ennen sen käyttöä, ja jos on, älä suorita alla olevaa koodia, muuten ajatteletMuuttuja ei voi koskaan olla nolla, voidaan käyttääArgumentNullException.ThrowIfNull(assemblyFullName); Varoitukset voidaan myös poistaa! Toisin sanoen, jos muuttuja on nolla, se heittää poikkeuksen suoraan ajonajan aikana!

Yhteenveto: C# 8.0 toi tämän ominaisuuden, ja koen henkilökohtaisesti, että se on kehittäjien tarkkuuden parantamiseksi ja matalan tason virheiden välttämiseksi.

Lisää nollatasoisia menetelmäratkaisuja löytyy osoitteesta:Hyperlinkin kirjautuminen on näkyvissä.





Edellinen:Kysy nykyisen projektin Git-laitteen etäosoite
Seuraava:ASP.NET Core (kaksitoista) etupään JS, CSS-paketointi ja pakkaus
Julkaistu 2022-3-26 20:57:32 |
Opettele oppimaan
Julkaistu 2022-3-28 08:23:47 |
Tule ja opi
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com