Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 19482|Válasz: 2

[Forrás] C# 8.0 lehet null referencia típus

[Linket másol]
Közzétéve: 2022-3-26 16:40:21 | | | |
C# 8.0 előtt minden referenciatípus null lehetett. A null referenciatípusok a C# 8.0-ban bevezetett olyan funkciók halmazára utalnak, amelyek a következőképpen használhatókMinimalizáld annak valószínűségét, hogy a kódod futtatási hibákat okoz。 A nullable referenciatípusok három funkciót tartalmaznak, amelyek segítenek elkerülni ezeket a kivételeket, beleértve a hivatkozási típusok explicit jelölését nullíthatóként:

  • Optimalizált statikus áramláselemzés annak megállapítására, hogy egy változó null-e, mielőtt nem hivatkoznak rá.
  • Attribútumok, amelyeket az API annotálásához használnak, hogy a Stream Analytics meghatározza a null állapotot.
  • Változó annotációk, amelyeket a fejlesztők használhatnak arra, hogy explicit módon kijelentsék egy változó várható nullállapotát.


A nullállapot-elemzés és a változó annotációk alapértelmezés szerint le van tiltva a meglévő projektek esetén, ami azt jelenti, hogy minden referenciatípus továbbra is nullálható. A .NET 6-tól kezdődően ezek a funkciók alapértelmezetten engedélyezve vannak új projekteknél.

Dokumentáció:A hiperlink bejelentkezés látható.

Milyen referenciatípus, amely null lehet, mit kell tenniMinimalizáld annak esélyét, hogy az alkalmazásod futásidőben System.NullReferenceException-t küldjön

Egy .NET 6-tal fejleszthető projektben létrehozok egy Name tulajdonságot egy új tulajdonsághoz, amely a következő figyelmeztetést adja:

A konstruktorból való kilépéskor a nem nullable "Name" tulajdonságnak nem null értéket kell tartalmaznia. Fontold meg az ingatlan kinyilvánítását, mint hogy nulla lehet.


Bár ez figyelmeztetés, nagyon idegesítő! Hogyan lehet ezt a figyelmeztetést orvosolni? Az alapértelmezett érték az hozzárendeléshez egy üres string, és a kód a következő:

Vagyis ha a tulajdonság nincs kézzel hozzárendelve, akkor a tulajdonság alapértelmezett értéke egy üres string.

Helyi változó használatakor,A típus a zsinór? figyelmeztetéseket is generálhat, ahogy az alábbi ábrán látható:



A megoldás, a használat előtt megállapítsák, hogy null-e a változó, és ha igen, ne hajtsd le az alábbi kódot, különben azt gondolod,A változó soha nem lehet null, használhatóArgumentNullException.ThrowIfNull(assemblyFullName); A figyelmeztetések is eltávolíthatók! Más szóval, ha a változó null, akkor közvetlenül a futás alatt kivételt fog adni!

Összefoglaló: A C# 8.0 vezette be ezt a funkciót, és személy szerint úgy érzem, hogy ez a fejlesztők szigorúságának javítására és az alacsony szintű hibák elkerülésére szolgál.

További null típusú módszermegoldásokért kérjük, lásd:A hiperlink bejelentkezés látható.





Előző:Kérdezd a jelenlegi projekt Git távoli címét
Következő:ASP.NET Core (tizenkettő) front-end JS, CSS csomagolás és tömörítés
Közzétéve: 2022-3-26 20:57:32 |
Tanulj meg
Közzétéve: 2022-3-28 08:23:47 |
Gyere és tanulj
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com