Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 19482|Svar: 2

[Källa] C# 8.0 kan vara en nollreferenstyp

[Kopiera länk]
Publicerad den 26 februari 2022 16:40:21 | | | |
Före C# 8.0 kunde alla referenstyper vara null. Nollreferenstyper avser en uppsättning funktioner som introducerades i C# 8.0 och som kan användas förMinimera sannolikheten att din kod orsakar runtime-throws。 Nullbara referenstyper inkluderar tre funktioner för att undvika dessa undantag, inklusive möjligheten att explicit markera referenstyper som nullbara:

  • Optimerad statisk flödesanalys för att avgöra om en variabel är null innan den är orefererad.
  • Attribut som används för att annotera API:et så att Stream Analytics bestämmer null-tillståndet.
  • Variabelannotationer som utvecklare kan använda för att uttryckligen deklarera det förväntade nolltillståndet för en variabel.


Nullstatusanalys och variabelannotationer är inaktiverade som standard för befintliga projekt, vilket innebär att alla referenstyper fortfarande kan nulleras. Från och med .NET 6 är dessa funktioner aktiverade som standard för nya projekt.

Dokumentation:Inloggningen med hyperlänken är synlig.

Vad en referenstyp som kan vara null ska göraMinimera risken att din applikation kastar en System.NullReferenceException vid körning

I ett projekt jag utvecklar med .NET 6 skapar jag en Name-egenskap för en ny egenskap som ger mig följande varning:

När man lämnar konstruktorn måste den icke-nullbara egenskapen "Name" innehålla ett icke-nullvärde. Överväg att förklara egenskapen som kan vara null.


Även om det är en varning, är det väldigt irriterande! Hur åtgärdar man denna varning? Standardvärdet för tilldelning är en tom sträng, och koden är följande:

Det vill säga, när egenskapen inte tilldelas manuellt, är standardvärdet för egenskapen en tom sträng.

När man använder en lokal variabel,Typen är snöre? kan också generera varningar, som visas i figuren nedan:



lösning, avgör om variabeln är null innan du använder den, och om den är det, exekvera inte koden nedan, annars tror duVariabeln kan aldrig vara null, kan användasArgumentNullException.ThrowIfNull(assemblyFullName); Varningar kan också tas bort! Med andra ord, om variabeln är null, kommer den att kasta ett undantag direkt under körning!

Sammanfattning: C# 8.0 introducerade denna funktion, och jag känner personligen att den är för att förbättra utvecklarnas stringens och undvika att göra några lågnivåmisstag.

För fler metodlösningar som kan vara null, vänligen se:Inloggningen med hyperlänken är synlig.





Föregående:Fråga den fjärranslutna adressen till det aktuella projektets Git
Nästa:ASP.NET Core (tolv) front-end JS, CSS-paketering och komprimering
Publicerad den 2022-3-26 20:57:32 |
Lär dig att lära dig
Publicerad 2022-3-28 08:23:47 |
Kom och lär dig
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com