Nullable i beräkningar
Förstå hur null-värden fortplantas genom aritmetiska uttryck.
Nullable i beräkningar är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 4 lektioner.
Lyfta operatorer
C# "lyfter" aritmetik- och jämförelseoperatorer så att de fungerar med nullbara typer. Operatorer som + får automatiskt en nullbar variant.
using System;
class Program {
static void Main() {
int? a = 5;
int? b = 3;
Console.WriteLine(a + b);
}
}Null sprids genom matematiska uttryck
Om någon operand i ett lyft aritmetiskt uttryck är null blir resultatet null.
using System;
class Program {
static void Main() {
int? a = 5;
int? b = null;
int? sum = a + b;
Console.WriteLine(sum.HasValue);
}
}Skriva ut nullresultat
Ett nullresultat från aritmetik skrivs ut som en tom sträng, i enlighet med hur nullbara värden visas.
using System;
class Program {
static void Main() {
int? a = null;
Console.WriteLine("Result: [" + (a * 2) + "]");
}
}Blanda nullbara och icke-nullbara typer
Ni kan blanda int och int? i matematiska uttryck; int-värdet konverteras till nullbart och resultatet blir nullbart.
using System;
class Program {
static void Main() {
int? a = 10;
int b = 4;
int? result = a - b;
Console.WriteLine(result);
}
}Lyfta jämförelser
Jämförelser av nullbara värden lyfts också. Om någon sida är null returnerar ordningsjämförelser som < false.
using System;
class Program {
static void Main() {
int? a = null;
int? b = 5;
Console.WriteLine(a < b);
Console.WriteLine(a > b);
}
}Jämförelse med null
Till skillnad från ordningsjämförelser är likhet definierad: två nullvärden är lika, och null är inte lika med något tal.
using System;
class Program {
static void Main() {
int? a = null;
int? b = null;
Console.WriteLine(a == b);
Console.WriteLine(a == 0);
}
}Kombinera ?? med matematik
Använd ?? för att ersätta null med ett säkert tal innan beräkningen utförs, så att resultatet förblir icke-nullbart.
using System;
class Program {
static void Main() {
int? a = null;
int total = (a ?? 0) + 100;
Console.WriteLine(total);
}
}Skydda division
Kombinera kontroller med HasValue och beräkningar för att undvika både nullvärden och division med noll.
using System;
class Program {
static void Main() {
int? a = 20, b = 4;
if (a.HasValue && b.HasValue && b.Value != 0)
Console.WriteLine(a.Value / b.Value);
}
}Summera nullbara data
När ni summerar data som kan innehålla nullvärden måste ni avgöra om null ska hoppas över eller behandlas som noll.
using System;
class Program {
static void Main() {
int?[] data = { 5, null, 10, null, 2 };
int total = 0;
foreach (var x in data)
total += x ?? 0;
Console.WriteLine(total);
}
}Nullbart boolvärde i logik
Ett bool?-värde deltar i lyft logik: true | null är true, false & null är false, och i övriga fall blir resultatet null.
using System;
class Program {
static void Main() {
bool? a = null;
bool? b = true;
Console.WriteLine(a | b);
}
}Konvertera resultatet till ett vanligt värde
Efter en nullbar beräkning använder ni ?? eller GetValueOrDefault för att få ett vanligt värde som kan visas.
using System;
class Program {
static void Main() {
int? a = 6, b = 7;
int product = (a * b) ?? 0;
Console.WriteLine(product);
}
}Snabbtest
Testa era kunskaper om nullbar aritmetik.
Sammanfattning
C# lyfter aritmetik-, jämförelse- och logikoperatorer till nullbara typer. Varje nulloperand i aritmetik ger ett nullresultat, och ordningsjämförelser med null returnerar false medan likhet är väldefinierad.
Använd ?? eller GetValueOrDefault för att ersätta null med säkra värden före eller efter beräkningar, och använd HasValue som skydd när det behövs.
Lär dig C# med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 93
- Lektioner
- 346
Vanliga frågor
Är lektionen ”Nullable i beräkningar” gratis?
Ja – hela texten till ”Nullable i beräkningar” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Nullable i beräkningar”?
Förstå hur null-värden fortplantas genom aritmetiska uttryck. Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig C# Academy?
Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Nullable i beräkningar”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här C# Academy-lektionen?
Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till nullable-värdetyper
- Egenskaperna HasValue och Value
- Null-coalescing-operatorer
- Nullable i beräkningar