Introduzione ai tipi di valore nullable
Dichiari int?, double? e comprenda Nullable .
Introduzione ai tipi di valore nullable è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 4 lezioni in totale.
I tipi valore non possono essere null
Normalmente un int contiene sempre un numero e non può mai essere null. A volte è necessario rappresentare l'assenza di un valore, ad esempio quando manca una misurazione.
using System;
class Program {
static void Main() {
int count = 0;
Console.WriteLine(count);
}
}Nullable con ?
Aggiunga ? dopo un tipo valore per renderlo nullable. int? può contenere un qualsiasi int oppure null.
using System;
class Program {
static void Main() {
int? maybe = null;
Console.WriteLine(maybe.HasValue);
maybe = 42;
Console.WriteLine(maybe);
}
}Altri tipi nullable
Qualsiasi tipo valore può essere nullable: double?, bool?, DateTime? e così via.
using System;
class Program {
static void Main() {
double? temp = null;
bool? flag = true;
Console.WriteLine(temp.HasValue + " " + flag);
}
}Nullable<T> per esteso
int? è semplicemente una forma abbreviata della struct Nullable<int>. Entrambi vengono compilati esattamente nello stesso tipo.
using System;
class Program {
static void Main() {
Nullable<int> a = 10;
int? b = 10;
Console.WriteLine(a == b);
}
}Assegnare null
È possibile assegnare liberamente null a una variabile nullable e assegnarle in seguito un valore reale.
using System;
class Program {
static void Main() {
int? id = 100;
Console.WriteLine(id);
id = null;
Console.WriteLine(id.HasValue);
}
}Stampare un nullable null
La stampa di un nullable che vale null produce una stringa vuota, non la parola null.
using System;
class Program {
static void Main() {
int? value = null;
Console.WriteLine("[" + value + "]");
}
}Conversione implicita a nullable
Un int normale viene convertito automaticamente in int?, perché ogni int è un int nullable valido.
using System;
class Program {
static void Main() {
int x = 7;
int? y = x;
Console.WriteLine(y);
}
}Tipi nullable come valori restituiti dai metodi
Un metodo può restituire un tipo nullable per distinguere tra «valore trovato» e «nessun valore trovato».
using System;
class Program {
static int? FindEven(int[] nums) {
foreach (int n in nums)
if (n % 2 == 0) return n;
return null;
}
static void Main() {
Console.WriteLine(FindEven(new[] {1, 3, 4}));
}
}Confrontare i nullable
L'uguaglianza funziona come previsto: due nullable sono uguali se entrambi sono null oppure se contengono lo stesso valore.
using System;
class Program {
static void Main() {
int? a = null;
int? b = null;
Console.WriteLine(a == b);
int? c = 5;
Console.WriteLine(c == 5);
}
}Perché usare i tipi nullable
I tipi valore nullable rappresentano in modo chiaro i dati facoltativi, ad esempio una colonna di database che consente NULL o un campo lasciato vuoto dall'utente.
using System;
class Program {
static void Main() {
int? userAge = null;
string msg = userAge.HasValue ? "Age set" : "Age unknown";
Console.WriteLine(msg);
}
}Nullable è una struct
Nullable<T> è a sua volta un tipo valore, quindi una variabile nullable non è mai un riferimento, anche se può essere null.
using System;
class Program {
static void Main() {
int? n = 3;
Console.WriteLine(n.GetType().Name);
}
}Verifica rapida
Verifichi la Sua comprensione dei tipi valore nullable.
Riepilogo
I tipi valore come int non possono essere null per impostazione predefinita. Aggiungendo ? si crea un tipo nullable (int?), che è una forma abbreviata di Nullable<T>.
I tipi nullable consentono di rappresentare dati mancanti o facoltativi, si convertono implicitamente dal tipo sottostante e sono a loro volta struct.
Domande Frequenti
La lezione «Introduzione ai tipi di valore nullable» è gratuita?
Sì — il testo completo di «Introduzione ai tipi di valore nullable» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 4 lezioni in totale.
Cosa imparerò in «Introduzione ai tipi di valore nullable»?
Dichiari int?, double? e comprenda Nullable . Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C# Academy?
Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Introduzione ai tipi di valore nullable»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C# Academy?
Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Introduzione ai tipi di valore nullable
- Proprietà HasValue e Value
- Operatori null-coalescing
- Nullable nei calcoli