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.
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
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.
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
- Felter, auto-properties, object initializers
- Konstruktører, statiske medlemmer
- Indkapsling og invariants