Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 19482|Risposta: 2

[Fonte] C# 8.0 può essere un tipo di riferimento nullo

[Copiato link]
Pubblicato il 26-03-2022 16:40:21 | | | |
Prima di C# 8.0, tutti i tipi di riferimento potevano essere nulli. I tipi di riferimento nulli si riferiscono a un insieme di caratteristiche introdotte in C# 8.0 che possono essere utilizzate perMinimizza la probabilità che il tuo codice causi throw in runtime。 I tipi di riferimento nullable includono tre funzionalità per aiutare a evitare queste eccezioni, tra cui la possibilità di contrassegnare esplicitamente i tipi di riferimento come nullabili:

  • Analisi del flusso statico ottimizzata per determinare se una variabile è nulla prima che venga scossa dal riferimento.
  • Attributi utilizzati per annotare l'API affinché Stream Analytics determini lo stato nullo.
  • Annotazioni di variabili che gli sviluppatori possono utilizzare per dichiarare esplicitamente lo stato nullo atteso di una variabile.


L'analisi dello stato nullo e le annotazioni delle variabili sono disabilitate di default per i progetti esistenti, il che significa che tutti i tipi di riferimento sono ancora nullabili. A partire da .NET 6, queste funzionalità sono abilitate di default per i nuovi progetti.

Documentazione:Il login del link ipertestuale è visibile.

Cosa può fare un tipo di riferimento che può essere nulloMinimizza la possibilità che la tua applicazione generi un System.NullReferenceException in tempo reale

In un progetto che sto sviluppando con .NET 6, creo una proprietà Name per una nuova proprietà che mi richiama con il seguente avvertimento:

Quando si esce dal costruttore, la proprietà non nullabile "Name" deve contenere un valore non nullo. Considera di dichiarare la proprietà come può essere nulla.


Anche se è un avvertimento, è davvero fastidioso! Come correggere questo avviso? Il valore predefinito per l'assegnazione è una stringa vuota, e il codice è il seguente:

Cioè, quando la proprietà non viene assegnata manualmente, il valore predefinito della proprietà è una stringa vuota.

Quando si utilizza una variabile locale,Il tipo è a corda? può anche generare avvisi, come mostrato nella figura sottostante:



Determina se la variabile è nulla prima di usarla, e se lo è, non eseguire il codice sottostante, o pensiLa variabile non può mai essere nulla, può essere usatoArgomentoNullEccezione.ThrowIfNull(assemblyFullName); Gli avvisi possono anche essere rimossi! In altre parole, se la variabile è nulla, lancierà un'eccezione direttamente durante l'esecuzione!

Sommario: C# 8.0 ha introdotto questa caratteristica, e personalmente penso che serve a migliorare il rigore degli sviluppatori ed evitare errori di basso livello.

Per altre soluzioni di metodo che possono essere nulle, si prega di fare visita:Il login del link ipertestuale è visibile.





Precedente:Consulta l'indirizzo remoto del Git del progetto in corso
Prossimo:ASP.NET Core (dodici) front-end JS, bundle CSS e compressione
Pubblicato il 26-03-2022 20:57:32 |
Impara a imparare
Pubblicato il 28-03-2022 08:23:47 |
Vieni a imparare
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com