C# Academy · Lektion

Klassen Convert och parsning

Parsa och konvertera med Convert och TryParse.

Lektion 4 av 413 steg

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"));
    }
}
Gratis att börja

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

  1. Värdetyper kontra referenstyper
  2. Boxning och avboxning
  3. Implicit och explicit konvertering
  4. Klassen Convert och parsning
← Tillbaka till C# Academy