Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Struct Metoder | Strukturer og Enumeratorer
C# Ud Over Det Grundlæggende

bookStruct Metoder

En struktur kan også have metoder ud over datafelter. I en struct oprettes en metode på samme måde, som du generelt opretter en metode:

index.cs

index.cs

copy
123456789
struct structureName { // some fields here (optional) public returnType methodName(parameter1, parameter2, ...) { // code } }

For eksempel:

index.cs

index.cs

copy
12345678910
struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } }

I Player-strukturen findes en metode kaldet displayScore, som viser en formateret outputbesked, der indeholder name og score. Det er vigtigt at bemærke, at værdierne for name og score vil være forskellige for hvert objekt (instans), hvilket betyder, at displayScore-metoden vil vise forskellig output for hvert objekt.

Du kan tilgå og udføre metoden ved at bruge syntaksen variableName.methodName(). Lad os se, hvordan du anvender Player-strukturen:

index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930
using System; struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } } class ConsoleApp { static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); player1.name = "SuperKillerPro"; player1.score = 100; player2.name = "Cyrex"; player2.score = 77; player1.displayScore(); player2.displayScore(); } }

I eksemplet blev to objekter oprettet ved hjælp af Player-klassen, og der blev tildelt nogle data til dem. Metoden displayScore blev kaldt ved hjælp af hvert objekt, og outputtet viste sig at være forskelligt for hver af dem.

Du kan også have metoder med nogle parametre. Lad os tilføje en ny metode kaldet addScore, som øger scoren med et angivet beløb, og prøve at bruge den:

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031
using System; struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } public void addScore(int add) { score += add; } } class ConsoleApp { static void Main(string[] args) { Player player1 = new Player(); player1.name = "SuperKillerPro"; player1.score = 100; player1.displayScore(); player1.addScore(70); player1.displayScore(); } }

Du kan se ud fra outputtet, at metoden opdaterer scoren med 70 point.

1. Hvilket er et gyldigt nøgleord til at erklære en metode?

2. Hvad vil outputtet af følgende kode være?

question mark

Hvilket er et gyldigt nøgleord til at erklære en metode?

Select the correct answer

question mark

Hvad vil outputtet af følgende kode være?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 2.04

bookStruct Metoder

Stryg for at vise menuen

En struktur kan også have metoder ud over datafelter. I en struct oprettes en metode på samme måde, som du generelt opretter en metode:

index.cs

index.cs

copy
123456789
struct structureName { // some fields here (optional) public returnType methodName(parameter1, parameter2, ...) { // code } }

For eksempel:

index.cs

index.cs

copy
12345678910
struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } }

I Player-strukturen findes en metode kaldet displayScore, som viser en formateret outputbesked, der indeholder name og score. Det er vigtigt at bemærke, at værdierne for name og score vil være forskellige for hvert objekt (instans), hvilket betyder, at displayScore-metoden vil vise forskellig output for hvert objekt.

Du kan tilgå og udføre metoden ved at bruge syntaksen variableName.methodName(). Lad os se, hvordan du anvender Player-strukturen:

index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930
using System; struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } } class ConsoleApp { static void Main(string[] args) { Player player1 = new Player(); Player player2 = new Player(); player1.name = "SuperKillerPro"; player1.score = 100; player2.name = "Cyrex"; player2.score = 77; player1.displayScore(); player2.displayScore(); } }

I eksemplet blev to objekter oprettet ved hjælp af Player-klassen, og der blev tildelt nogle data til dem. Metoden displayScore blev kaldt ved hjælp af hvert objekt, og outputtet viste sig at være forskelligt for hver af dem.

Du kan også have metoder med nogle parametre. Lad os tilføje en ny metode kaldet addScore, som øger scoren med et angivet beløb, og prøve at bruge den:

index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031
using System; struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } public void addScore(int add) { score += add; } } class ConsoleApp { static void Main(string[] args) { Player player1 = new Player(); player1.name = "SuperKillerPro"; player1.score = 100; player1.displayScore(); player1.addScore(70); player1.displayScore(); } }

Du kan se ud fra outputtet, at metoden opdaterer scoren med 70 point.

1. Hvilket er et gyldigt nøgleord til at erklære en metode?

2. Hvad vil outputtet af følgende kode være?

question mark

Hvilket er et gyldigt nøgleord til at erklære en metode?

Select the correct answer

question mark

Hvad vil outputtet af følgende kode være?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
some-alt