C# Academy · Lektion

Typ inference for lokale variabler med var

Brug var, når typen er åbenlys.

Lektion 1 af 413 trin

Typ inference for lokale variabler med var er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 4 lektioner i alt.

Hvad er var?

var lader compileren udlede typen af en lokal variabel ud fra initialiseringen. Variablen er stadig stærkt typet ved kompilering.

using System;

class Program {
    static void Main() {
        var count = 10;
        Console.WriteLine(count);
    }
}

var er ikke dynamic

var fastlægges ved kompilering. var x = 10 er præcis en int og kan ikke senere indeholde en streng.

using System;

class Program {
    static void Main() {
        var name = "Ada";
        Console.WriteLine(name.GetType().Name);
    }
}

Udledning fra literaler

Compileren læser literalen for at vælge typen: 1 er int, 1.5 er double, og "hi" er string.

using System;

class Program {
    static void Main() {
        var a = 1;
        var b = 1.5;
        var c = "hi";
        Console.WriteLine(a.GetType().Name + " " + b.GetType().Name + " " + c.GetType().Name);
    }
}

Initialisering er påkrævet

Fordi typen kommer fra initialiseringen, skal var-variabler tildeles en værdi, når de erklæres.

using System;

class Program {
    static void Main() {
        var total = 0;
        for (int i = 1; i <= 4; i++) total += i;
        Console.WriteLine(total);
    }
}

var med åbenlyse typer

var er særligt nyttig, når højresiden allerede angiver typen, f.eks. ved et konstruktørkald. Det undgår gentagelse.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var list = new List<int> { 1, 2, 3 };
        Console.WriteLine(list.Count);
    }
}

var med metoders resultater

Du kan bruge var til returværdier, når metodens navn gør typen tydelig.

using System;

class Program {
    static int Square(int n) { return n * n; }
    static void Main() {
        var result = Square(6);
        Console.WriteLine(result);
    }
}

var i foreach

var er praktisk i foreach-løkker over samlinger med kendte elementtyper.

using System;

class Program {
    static void Main() {
        var names = new[] { "Sam", "Lee" };
        foreach (var n in names)
            Console.WriteLine(n);
    }
}

Arrays med udledte typer

Et array med implicit type, new[] { ... }, udleder sin elementtype ud fra værdierne.

using System;

class Program {
    static void Main() {
        var nums = new[] { 10, 20, 30 };
        Console.WriteLine(nums.Length);
    }
}

var er stadig typesikkert

Fordi typen er fastlagt, kan en tildeling af den forkerte type senere ikke kompileres, præcis som ved en eksplicit deklaration.

using System;

class Program {
    static void Main() {
        var x = 5;
        x = 10;
        Console.WriteLine(x);
    }
}

var og anonyme typer

var er påkrævet for anonyme typer, fordi de ikke har et navn, du kan skrive.

using System;

class Program {
    static void Main() {
        var point = new { X = 3, Y = 4 };
        Console.WriteLine(point.X + ", " + point.Y);
    }
}

Fordel for læsbarheden

Brugt rigtigt reducerer var overflødig støj og gør koden mere overskuelig, især med lange generiske typenavne.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var scores = new Dictionary<string, int> { ["Ann"] = 90 };
        Console.WriteLine(scores["Ann"]);
    }
}

Hurtig kontrol

Afprøv din forståelse af var.

Opsummering

var fortæller compileren, at den skal udlede en lokal variabels type ud fra initialiseringen, så variablen forbliver stærkt typet og fast ved kompilering, i modsætning til dynamic.

Det kræver en initialisering, fjerner overflødige typenavne og er påkrævet for anonyme typer. Det forbedrer læsbarheden, når typen allerede er åbenlys.

Gratis at komme i gang

Lær C# med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
93
Lektioner
346

Ofte stillede spørgsmål

Er lektionen “Typ inference for lokale variabler med var” gratis?

Ja — hele teksten til “Typ inference for lokale variabler med var” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Typ inference for lokale variabler med var”?

Brug var, når typen er åbenlys. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C# Academy?

Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Typ inference for lokale variabler med var”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C# Academy-lektion?

Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Typ inference for lokale variabler med var
  2. Hvornår var bør undgås
  3. Typen dynamic
  4. Target-typede new-udtryk
← Tilbage til C# Academy