Introduksjon til klasser i C#

Klasser er de grunnleggende byggesteinene i objektorientert programmering i C#. De lar programmerere definere planen for å lage objekter, som er forekomster av klassen. Klasser kapsler inn data og atferd i en enkelt enhet, og gir en modulær og gjenbrukbar måte å organisere koden på.

Klassedefinisjon i C#

Klassene er definert på følgende måte:

// Define a class called 'Person'
class Person
{
    // Class variables (also known as fields)
    public string Name;
    public int Age;

    // Class method
    public void Greet()
    {
        Console.WriteLine($"Hello, my name is {Name} and I'm {Age} years old.");
    }
}

// Create objects of the 'Person' class
Person person1 = new Person();
person1.Name = "John";
person1.Age = 30;
person1.Greet();  // Output: Hello, my name is John and I'm 30 years old.

Person person2 = new Person();
person2.Name = "Jane";
person2.Age = 25;
person2.Greet();  // Output: Hello, my name is Jane and I'm 25 years old.
  • I koden ovenfor definerer vi en klasse kalt 'Person', som har to offentlige klassevariabler: 'Name' (av typen 'string') og 'Age' (av typen 'int'). Vi har også en offentlig metode kalt 'Greet()' som skriver ut en hilsen ved å bruke variablene 'Name' og 'Age'.
  • For å lage objekter i klassen 'Person' bruker vi nøkkelordet 'new' etterfulgt av klassenavnet ('Person'). Vi tildeler deretter verdier til variablene 'Name' og 'Age' for hvert objekt. Til slutt kaller vi 'Greet()'-metoden på hvert objekt for å vise hilsenen.
  • Klasser gir en måte å lage flere forekomster (objekter) med sine egne unike data, slik at man kan lage så mange objekter 'Person' som nødvendig og få tilgang til egenskapene og metodene deres uavhengig.

Konklusjon

Klasser gir et grunnlag for å bygge komplekse applikasjoner med C#, og tilbyr funksjoner som konstruktører for objektinitialisering, egenskaper for kontrollert tilgang til klassemedlemmer og tilgangsmodifikatorer for å administrere synlighet. Ved å utnytte klasser effektivt, er det mulig å lage modulære, vedlikeholdbare og skalerbare kodestrukturer.