C# Academy · Lektion

Konstruktører, statiske medlemmer

Opret objekter med konstruktører (herunder overloads og chaining), og brug statiske felter/metoder til data, der deles af alle instanser.

Lektion 2 af 38 trin

Konstruktører, statiske medlemmer er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 2 af 3. 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 3 lektioner i alt.

Konstruktører og static: oversigt

Mål: Opret objekter sikkert, og del data på tværs af instanser.

  • Konstruktører angiver påkrævet tilstand
  • Overloadning & kædning med this(...)
  • Static-felter/-metoder deles af alle objekter

Grundlæggende konstruktør

En konstruktør køres, når du kalder new, og initialiserer objektet.

using System;

// Constructor sets required data on creation
public class User
{
  public string Name { get; private set; }
  public int Age { get; private set; }

  public User(string name, int age)
  {
    Name = name;
    Age = age;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    User u = new User("Ada", 28);
    Console.WriteLine(u.Name + " (" + u.Age + ")");
  }
}

Overloadning og kædning

Brug overloadning af konstruktører for nemheds skyld og this(...) til at genbruge logik.

using System;

// Overloads let you offer defaults; chain with this(...)
public class Point2D
{
  public int X { get; private set; }
  public int Y { get; private set; }

  public Point2D(int x, int y)
  {
    X = x; Y = y;
  }

  public Point2D(int xy) : this(xy, xy) { } // calls the main constructor
}

public class Program
{
  public static void Main(string[] args)
  {
    Point2D p1 = new Point2D(3, 4);
    Point2D p2 = new Point2D(5); // becomes (5,5)
    Console.WriteLine("p1: " + p1.X + "," + p1.Y);
    Console.WriteLine("p2: " + p2.X + "," + p2.Y);
  }
}

Static-medlemmer

Static-medlemmer deles af alle instanser. Kald static-metoder via typenavnet.

using System;

// Static members live on the type (one copy shared)
public class Counter
{
  private static int _created = 0;   // shared count
  public int Id { get; private set; }

  public Counter()
  {
    _created = _created + 1;
    Id = _created;
  }

  public static int CreatedCount()
  {
    return _created;
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Counter a = new Counter();
    Counter b = new Counter();
    Console.WriteLine("a.Id=" + a.Id + ", b.Id=" + b.Id);
    Console.WriteLine("Total created = " + Counter.CreatedCount());
  }
}

Static-konstruktør og konstanter

En static-konstruktør køres én gang pr. type. Brug const til literaler, der fastlægges ved kompilering, og static readonly til værdier, der angives ved kørsel.

using System;

public class AppConfig
{
  public const string AppName = "Demo";      // compile-time constant
  public static readonly DateTime StartedAt; // runtime-initialized once

  // Static constructor: runs once before first use of the type
  static AppConfig()
  {
    StartedAt = DateTime.UtcNow;
  }

  public static string Info()
  {
    return AppName + " started at " + StartedAt.ToString("u");
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Console.WriteLine(AppConfig.Info());
    Console.WriteLine(AppConfig.Info()); // static ctor ran only once
  }
}

Tip

Tip:

  • Hold konstruktører små, og validér inddata tidligt.
  • Brug overloadning til almindelige standardværdier, og kæd dem sammen til én hovedkonstruktør.
  • Brug static, når data virkelig hører til typen (f.eks. tællere og hjælpefunktioner).

Begrebet static-medlemmer

Hurtigt tjek: Hvilket udsagn om static-medlemmer er korrekt?

Opsamling

Opsamling: Brug konstruktører til at angive påkrævet tilstand, brug overloadning og kædning for nemheds skyld, og tilføj static-medlemmer til data eller hjælpefunktioner, der deles af alle objekter.

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 “Konstruktører, statiske medlemmer” gratis?

Ja — hele teksten til “Konstruktører, statiske medlemmer” 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 3 lektioner i alt.

Hvad lærer jeg i “Konstruktører, statiske medlemmer”?

Opret objekter med konstruktører (herunder overloads og chaining), og brug statiske felter/metoder til data, der deles af alle instanser. 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 2 af 3.

Hvor lang tid tager lektionen “Konstruktører, statiske medlemmer”?

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. Felter, auto-properties, object initializers
  2. Konstruktører, statiske medlemmer
  3. Indkapsling og invariants
← Tilbage til C# Academy