Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 19482|Atsakyti: 2

[Šaltinis] C# 8.0 gali būti nulinės nuorodos tipas

[Kopijuoti nuorodą]
Publikuota 2022-3-26 16:40:21 | | | |
Iki C# 8.0 visi nuorodų tipai galėjo būti nuliniai. Nulinių nuorodų tipai nurodo C# 8.0 įdiegtų funkcijų rinkinį, kurį galima naudotiSumažinkite tikimybę, kad jūsų kodas sukels vykdymo laiko metimus。 Nuliniai nuorodų tipai apima tris funkcijas, padedančias išvengti šių išimčių, įskaitant galimybę aiškiai pažymėti nuorodų tipus kaip negaliojančius:

  • Optimizuota statinio srauto analizė, siekiant nustatyti, ar kintamasis yra nulinis, kol jis nebus nurodytas.
  • Atributai, naudojami API komentuoti, kad "Stream Analytics" nustatytų nulinę būseną.
  • Kintamųjų komentarai, kuriuos kūrėjai gali naudoti norėdami aiškiai deklaruoti numatomą nulinę kintamojo būseną.


Nulinės būsenos analizė ir kintamųjų komentarai pagal numatytuosius nustatymus yra išjungti esamuose projektuose, o tai reiškia, kad visi nuorodų tipai vis dar yra nuliniai. Pradedant nuo .NET 6, šios funkcijos pagal numatytuosius nustatymus įjungiamos naujiems projektams.

Dokumentacija:Hipersaito prisijungimas matomas.

Ką turi daryti nuorodos tipas, kuris gali būti nulinisSumažinkite tikimybę, kad jūsų programa vykdymo metu pateiks System.NullReferenceException

Projekte, kurį kuriu su .NET 6, sukuriu naujos ypatybės ypatybę Pavadinimas, kuri paragina mane su tokiu įspėjimu:

Išeinant iš konstruktoriaus, nenulinėje ypatybėje "Pavadinimas" turi būti ne nulinė reikšmė. Apsvarstykite galimybę paskelbti nuosavybę negaliojančia.


Nors tai įspėjimas, tai labai erzina! Kaip ištaisyti šį įspėjimą? Numatytoji priskyrimo reikšmė yra tuščia eilutė, o kodas yra toks:

Tai yra, kai ypatybė nėra priskirta rankiniu būdu, numatytoji ypatybės reikšmė yra tuščia eilutė.

Kai naudojate vietinį kintamąjį,Tipas yra eilutė? taip pat gali generuoti įspėjimus, kaip parodyta toliau pateiktame paveikslėlyje:



sprendimą, prieš naudodami nustatykite, ar kintamasis yra nulinis, o jei taip, nevykdykite žemiau esančio kodo, arba manote, kadKintamasis niekada negali būti nulinis, gali būti naudojamasArgumentNullException.ThrowIfNull(assemblyFullName); Įspėjimai taip pat gali būti pašalinti! Kitaip tariant, jei kintamasis yra nulinis, jis pateiks išimtį tiesiai vykdymo metu!

Santrauka: C# 8.0 pristatė šią funkciją, ir aš asmeniškai manau, kad ji skirta pagerinti kūrėjų griežtumą ir išvengti žemo lygio klaidų.

Daugiau metodų sprendimų, kurie gali būti nuliniai, ieškokite:Hipersaito prisijungimas matomas.





Ankstesnis:Užklausti dabartinio projekto "Git" nuotolinio adreso
Kitą:ASP.NET Core (dvylika) priekinės dalies JS, CSS susiejimas ir glaudinimas
Paskelbta 2022-3-26 20:57:32 |
Išmokite mokytis
Paskelbta 2022-3-28 08:23:47 |
Ateikite ir mokykitės
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com