I C# er de to hovedtypekategorier værdityper (såsom strukturer) og referencetyper (såsom klasser). Fordi en struktur (eller struktur) er en værditype, er den datacentreret.
En struct kan gemme attributter og relaterede metoder, der helst ikke fokuserer på adfærd.
Sådan erklærer du en struktur
Hver struct-erklæring skal have struktur søgeord. Sæt en adgangsmodifikator foran nøgleordet struct, og inkluder et navn og et par krøllede parenteser efter det. Sådan erklærer du en struktur kaldet Spil:
offentlig struct spil {}
Sådan befolker du en struktur
En struktur gemmer data inden for dens krøllede klammeparenteser i form af attributter, konstruktører, metoder, begivenheder osv.
offentlig struct spil
{
offentlig streng navn;
offentlig streng beskrivelse;
offentligint niveauer;offentligSpil(strengnavn, strengbeskrivelse, int niveauer){
dette.navn = navn;
dette.description = beskrivelse;
dette.niveauer = niveauer;
}
public override streng ToString() => $"Navn: {name}, Beskrivelse: {description}, Niveauer: {levels}";
}
Spilstrukturen har nu tre attributter, en konstruktør og en metode. Disse er tre primære komponenter i en C#-struktur, som også er tre af de primære komponenter i en C# klasse.
Sådan opretter du en strukturvariabel
Hver forekomst af en C#-struktur er kendt som en variabel. Der er to måder at oprette en variabel fra en konstruktion. Du kan bruge en konstruktør:
Spil spil1 = nyt spil("Pokéman GO", "Lorem ipsum dolor sit amet.", 50);
Eller du kan tildele værdier til individuelle attributter for en struktur ved hjælp af prik (.) operatoren:
Spil spil1;
spil1.navn = "Pokéman GO";
spil1.beskrivelse = "Lorem ipsum dolor sit amet.";
spil1.niveauer = 50;
Begge tilgange opnår det samme resultat. Ovenstående kode bruger C# til at udvikle et spilobjekt kaldet Pokémon GO, der har en kort beskrivelse og 50 niveauer. Så nu kan du bruge game1-objektet.
Konsol.WriteLine(spil 1.ToString());
Dette udskriver følgende output til konsollen:
Navn: Pokémon GO, Beskrivelse: Lorem ipsum dolor sit amet., Niveauer: 50
Forskellene mellem en struktur og en klasse
En struktur og en klasse har et lignende udseende, men de har mange bemærkelsesværdige forskelle. De bruger forskellige nøgleord til deklaration. Og strukturer understøtter hverken nulreferencer eller arv.