Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 19482|Atbildi: 2

[Avots] C# 8.0 var būt nulles atsauces tips

[Kopēt saiti]
Publicēts 2022-3-26 16:40:21 | | | |
Pirms C# 8.0 visi atsauces veidi varēja būt nulles. Nulles atsauču tipi attiecas uz C# 8.0 ieviesto līdzekļu kopu, ko var izmantotSamaziniet iespējamību, ka kods izraisīs izpildlaika metienus。 Anulējamie atsauču tipi ietver trīs līdzekļus, kas palīdz izvairīties no šiem izņēmumiem, tostarp iespēju skaidri atzīmēt atsauču tipus kā anulējamus:

  • Optimizēta statiskās plūsmas analīze, lai noteiktu, vai mainīgais ir nulle, pirms tas nav atsauces.
  • Atribūti, kas tiek izmantoti, lai anotētu API, lai Stream Analytics noteiktu nulles statusu.
  • Mainīgo anotācijas, ko izstrādātāji var izmantot, lai skaidri deklarētu mainīgā paredzamo nulles stāvokli.


Nulles stāvokļa analīze un mainīgo anotācijas esošajiem projektiem pēc noklusējuma ir atspējotas, kas nozīmē, ka visi atsauces veidi joprojām ir nullējami. Sākot ar .NET 6, šie līdzekļi pēc noklusējuma ir iespējoti jauniem projektiem.

Dokumentācija:Hipersaites pieteikšanās ir redzama.

Kas ir jādara atsauces tipam, kas var būt nulleSamaziniet iespēju, ka lietojumprogramma izpildlaikā izmetīs System.NullReferenceException

Projektā, ko izstrādāju ar .NET 6, es izveidoju rekvizītu Name jaunam rekvizītam, kas tiek aicināts ar šādu brīdinājumu:

Izejot no konstruktora, rekvizītam "Nosaukums" jābūt vērtībai, kas nav nulle. Apsveriet iespēju pasludināt īpašumu par spēkā neesošu.


Lai gan tas ir brīdinājums, tas ir ļoti kaitinoši! Kā novērst šo brīdinājumu? Piešķiršanas noklusējuma vērtība ir tukša virkne, un kods ir šāds:

Tas ir, ja rekvizīts nav piešķirts manuāli, rekvizīta noklusējuma vērtība ir tukša virkne.

Izmantojot lokālo mainīgo,Tips ir virkne? var arī radīt brīdinājumus, kā parādīts attēlā:



risinājumu, pirms tā lietošanas nosakiet, vai mainīgais ir nulle, un, ja tas ir, neizpildiet zemāk esošo kodu, vai arī jūs domājat, kaMainīgais nekad nevar būt nulle, var izmantotArgumentNullException.ThrowIfNull(assemblyFullName); Brīdinājumus var arī noņemt! Citiem vārdiem sakot, ja mainīgais ir nulle, tas radīs izņēmumu tieši izpildlaika laikā!

Kopsavilkums: C# 8.0 ieviesa šo funkciju, un es personīgi uzskatu, ka tas ir paredzēts, lai uzlabotu izstrādātāju stingrību un izvairītos no dažām zema līmeņa kļūdām.

Lai uzzinātu vairāk metožu risinājumu, kas var būt nulle, lūdzu, skatiet:Hipersaites pieteikšanās ir redzama.





Iepriekšējo:Pašreizējā projekta Git attālās adreses vaicāšana
Nākamo:ASP.NET Core (divpadsmit) priekšgala JS, CSS komplektēšana un saspiešana
Publicēts 2022-3-26 20:57:32 |
Iemācieties mācīties
Publicēts 2022-3-28 08:23:47 |
Nāciet un mācieties
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com