Övning – Ange och hämta värden från variabler

Slutförd

Eftersom variabler är tillfälliga lagringscontainrar för data är de avsedda att skrivas till och läsas från. Du får prova båda åtgärderna i den här övningen.

Övning – Arbeta med variabler

I den här övningen kommer du att bland annat att deklarera en variabel, tilldela den ett värde och hämta värdet.

Skapa din första variabel

  1. Markera all kod i .NET-redigeraren och tryck på Ta bort eller Backspace för att ta bort den.

  2. Ange följande kod i kodredigeraren:

    string firstName;
    firstName = "Bob";
    

Om du vill deklarera en variabel anger du den datatyp som du vill använda följt av ett namn på variabeln. När du ska tilldela ett värde till en variabel använder du tilldelningsoperatorn, som är likhetstecknet =.

Kommentar

Att tilldela ett värde kallas även för att ”ställa in variabeln”, eller för en ”set”-åtgärd i vardagligt tal.

Tilldela ett värde till en variabel felaktigt

Det är viktigt att du tänker på att tilldelningen görs från höger till vänster. Med andra ord måste C#-kompileraren först förstå värdet på höger sida av tilldelningsoperatorn, sedan kan tilldelning till variabeln utföras på vänster sida av tilldelningsoperatorn. Om du kastar om ordningen blir C#-kompilatorn förvirrad.

  1. Ändra koden du skrev så att den matchar följande kod:

    string firstName;
    "Bob" = firstName;
    
  2. Kör sedan koden. Du bör se följande fel i utdatakonsolen:

    (2,1): error CS0131: The left-hand side of an assignment must be a variable, property or indexer
    

Tilldela variabeln felaktigt ett värde av den felaktiga datatypen

Du har lärt dig att C# har utformats för att framtvinga typer. När du arbetar med variabler innebär tvingande typer att du inte kan tilldela ett värde av en datatyp till en variabel som deklarerats innehålla en annan datatyp.

  1. Ändra koden du skrev så att den matchar följande kod:

    int firstName;
    firstName = "Bob";
    
  2. Kör sedan koden. Du bör se följande fel i utdatakonsolen:

    (2,9): error CS0029: Cannot implicitly convert type 'string' to 'int'
    

Felmeddelande ger en ledtråd till vad C#-kompilatorn försöker göra i bakgrunden. Den försökte "implicit konvertera" strängen "Bob" till ett int-värde. Det är dock omöjligt. Trots detta försökte C# utföra konverteringen men misslyckas eftersom det inte finns någon numerisk motsvarighet för ordet "Bob".

Du lär dig mer om implicit och explicit typkonvertering senare. Kom bara ihåg att en variabel bara kan innehålla värden som matchar den angivna datatypen.

Hämta ett värde som du har lagrat i variabeln

När du vill hämta ett värde från en variabel använder du helt enkelt namnet på variabeln. Det här exemplet anger värdet för en variabel och hämtar sedan värdet och visar det i konsolen.

  1. Ändra koden du skrev så att den matchar följande kod:

    string firstName;
    firstName = "Bob";
    Console.WriteLine(firstName);
    
  2. Kör sedan koden. Du bör se följande utdata i konsolen:

    Bob
    

Att hämta värdet för en variabel kallas i vardagligt tal för en ”get”-åtgärd.

När du skriver kodrader ser du att kompilatorn kontrollerar din kod och upptäcker möjliga misstag. Kompilatorn är ett bra verktyg som hjälper dig att få koden korrekt tidigare. Nu när du är bekant med olika typer av fel kan du snabbt åtgärda misstag med hjälp av kompilatorns felmeddelanden.

Tilldela om värdet för en variabel

Du kan återanvända och omtilldela variabeln hur många gånger som helst. Du ser den här idén i exemplet.

  1. Ändra koden du skrev så att den matchar följande kod:

    string firstName;
    firstName = "Bob";
    Console.WriteLine(firstName);
    firstName = "Liem";
    Console.WriteLine(firstName);
    firstName = "Isabella";
    Console.WriteLine(firstName);
    firstName = "Yasmin";
    Console.WriteLine(firstName);
    
  2. Kör sedan koden. Du bör se följande utdata i konsolen:

    Bob
    Liem
    Isabella
    Yasmin
    

Initiera variabeln

Du måste ange en variabel till ett värde innan du kan hämta värdet från variabeln. Annars visas ett felmeddelande.

  1. Ändra koden du skrev så att den matchar följande kod:

    string firstName;
    Console.WriteLine(firstName);
    
  2. Kör sedan koden. Du bör se följande utdata i konsolen:

    (2,19): error CS0165: Use of unassigned local variable 'firstName'
    

För att undvika risken för en otilldelade lokal variabel rekommenderar vi att du anger värdet så snart som möjligt när du har deklarerat det.

Faktum är att du kan deklarera variabeln och ge den ett värde på samma kodrad. Den här tekniken kallas för att initiera variabeln.

  1. Ändra koden du skrev så att den matchar följande kod:

    string firstName = "Bob";
    Console.WriteLine(firstName);
    
  2. Kör sedan koden. Du bör se följande utdata:

    Bob
    

Sammanfattning

Här är vad du har lärt dig om att arbeta med variabler hittills:

  • Du måste tilldela (ange) ett värde till en variabel innan du kan hämta (hämta) ett värde från en variabel.
  • Du kan initiera en variabel genom att tilldela ett värde till variabeln vid deklarationspunkten.
  • Tilldelning sker från höger till vänster.
  • Du använder ett enda likhetstecken som tilldelningsoperator.
  • Om du vill hämta värdet från variabeln använder du bara variabelns namn.