Klassen Convert och parsning
Parsa och konvertera med Convert och TryParse.
Klassen Convert och parsning ä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.
Konvertera strängar till tal
Användarinmatning kommer in som text. För att kunna utföra beräkningar med den måste Ni konvertera strängar till tal. C# erbjuder Convert, Parse och TryParse.
using System;
class Program
{
static void Main()
{
string input = "42";
int number = int.Parse(input);
Console.WriteLine(number + 8);
}
}int.Parse
int.Parse omvandlar en numerisk sträng till en int. Den kastar en FormatException om texten inte är ett giltigt tal.
using System;
class Program
{
static void Main()
{
try
{
int n = int.Parse("abc");
Console.WriteLine(n);
}
catch (FormatException)
{
Console.WriteLine("Not a valid number");
}
}
}int.TryParse
int.TryParse undviker undantag: den returnerar true vid framgång och placerar resultatet i en out-parameter, eller returnerar false vid misslyckande.
using System;
class Program
{
static void Main()
{
if (int.TryParse("123", out int n))
Console.WriteLine("Parsed: " + n);
else
Console.WriteLine("Failed");
}
}TryParse för säker inmatning
TryParse är det rekommenderade sättet att hantera opålitlig inmatning, eftersom ogiltig text hanteras på ett kontrollerat sätt i stället för att programmet kraschar.
using System;
class Program
{
static void Main()
{
string[] inputs = { "10", "oops", "30" };
int total = 0;
foreach (var s in inputs)
{
if (int.TryParse(s, out int v))
total += v;
}
Console.WriteLine("Total of valid: " + total);
}
}Klassen Convert
Klassen Convert konverterar mellan många grundtyper: Convert.ToInt32, Convert.ToDouble, Convert.ToBoolean med flera.
using System;
class Program
{
static void Main()
{
int i = Convert.ToInt32("256");
double d = Convert.ToDouble("3.14");
bool b = Convert.ToBoolean("true");
Console.WriteLine(i + ", " + d + ", " + b);
}
}Convert hanterar null
Till skillnad från int.Parse returnerar Convert.ToInt32(null) 0 i stället för att kasta ett undantag, vilket kan vara praktiskt eller överraskande.
using System;
class Program
{
static void Main()
{
string s = null;
int n = Convert.ToInt32(s); // returns 0
Console.WriteLine("Result: " + n);
}
}Konvertera mellan numeriska typer
Convert omvandlar också en numerisk typ till en annan och avrundar (i stället för att trunkera) när flyttal konverteras till heltal.
using System;
class Program
{
static void Main()
{
double d = 7.6;
int cast = (int)d; // truncates -> 7
int converted = Convert.ToInt32(d); // rounds -> 8
Console.WriteLine("cast=" + cast + ", convert=" + converted);
}
}Parsa andra typer
De flesta inbyggda typer har egna Parse/TryParse-metoder: double.TryParse, bool.TryParse, DateTime.TryParse och så vidare.
using System;
class Program
{
static void Main()
{
bool okD = double.TryParse("2.5", out double d);
bool okB = bool.TryParse("True", out bool flag);
Console.WriteLine(okD + ":" + d + ", " + okB + ":" + flag);
}
}ToString för omvänd konvertering
För att omvandla ett tal tillbaka till text anropar Ni ToString(), eventuellt med en formatsträng.
using System;
class Program
{
static void Main()
{
int n = 255;
double price = 12.5;
Console.WriteLine(n.ToString());
Console.WriteLine(price.ToString("C")); // currency format
}
}Välj rätt verktyg
Använd TryParse för användarinmatning som Ni inte kan lita på, Parse när inmatningen garanterat är giltig och Convert när Ni hanterar null-värden eller konverterar mellan många typer.
using System;
class Program
{
static void Main()
{
string userInput = "55x";
int value = int.TryParse(userInput, out int v) ? v : -1;
Console.WriteLine(value == -1 ? "Invalid input" : "Got " + value);
}
}Sätt ihop delarna
Ett robust flöde för inmatning validerar med TryParse, använder ett standardvärde vid misslyckande och utför sedan beräkningen säkert.
using System;
class Program
{
static int ReadAge(string input)
{
if (int.TryParse(input, out int age) && age >= 0)
return age;
return 0; // safe default
}
static void Main()
{
Console.WriteLine("Age: " + ReadAge("28"));
Console.WriteLine("Age: " + ReadAge("bad"));
}
}Snabbtest
Testa Er förståelse av parsning och konvertering.
Sammanfattning
Konvertera text till tal med int.Parse (kastar ett undantag vid ogiltig inmatning), int.TryParse (säkert, returnerar ett bool-värde och ett out-värde) eller klassen Convert (hanterar null, avrundar flyttal och konverterar många typer). Föredra TryParse för opålitlig inmatning och ToString() för den omvända riktningen.
using System;
class Program
{
static void Main()
{
if (int.TryParse("99", out int n))
Console.WriteLine("Value: " + n);
Console.WriteLine("Convert: " + Convert.ToInt32("7"));
}
}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 ”Klassen Convert och parsning” gratis?
Ja – hela texten till ”Klassen Convert och parsning” 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 ”Klassen Convert och parsning”?
Parsa och konvertera med Convert och TryParse. 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 ”Klassen Convert och parsning”?
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
- Värdetyper kontra referenstyper
- Boxning och avboxning
- Implicit och explicit konvertering
- Klassen Convert och parsning