Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Strukturmetoder | Strukturer och Enumeratorer
C# Bortom Grunderna

bookStrukturmetoder

En struktur kan också ha metoder utöver datafält. I en struct skapar du en metod på samma sätt som du generellt skapar en metod:

index.cs

index.cs

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

Till exempel:

index.cs

index.cs

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

I strukturen Player finns en metod som heter displayScore som visar ett formaterat utdata-meddelande innehållande name och score. Det är viktigt att notera att värdena för name och score kommer att vara olika för varje objekt (instans), vilket innebär att metoden displayScore kommer att visa olika utdata för varje objekt.

Du kan komma åt och anropa metoden med syntaxen variableName.methodName(). Låt oss se hur du använder strukturen Player:

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 exemplet skapades två objekt med hjälp av klassen Player och viss data tilldelades dem. Metoden displayScore anropades med varje objekt och resultatet blev olika för var och en av dem.

Du kan även ha metoder med parametrar. Låt oss lägga till en ny metod som heter addScore som ökar poängen med ett angivet belopp och prova att använda 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 av resultatet att metoden uppdaterar poängen med 70 poäng.

1. Vilket är ett giltigt nyckelord för att deklarera en metod?

2. Vad blir utmatningen av följande kod?

question mark

Vilket är ett giltigt nyckelord för att deklarera en metod?

Select the correct answer

question mark

Vad blir utmatningen av följande kod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you show me the code for the Player structure and its methods?

How does the addScore method work in detail?

Can you explain how methods with parameters are defined in a struct?

Awesome!

Completion rate improved to 2.04

bookStrukturmetoder

Svep för att visa menyn

En struktur kan också ha metoder utöver datafält. I en struct skapar du en metod på samma sätt som du generellt skapar en metod:

index.cs

index.cs

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

Till exempel:

index.cs

index.cs

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

I strukturen Player finns en metod som heter displayScore som visar ett formaterat utdata-meddelande innehållande name och score. Det är viktigt att notera att värdena för name och score kommer att vara olika för varje objekt (instans), vilket innebär att metoden displayScore kommer att visa olika utdata för varje objekt.

Du kan komma åt och anropa metoden med syntaxen variableName.methodName(). Låt oss se hur du använder strukturen Player:

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 exemplet skapades två objekt med hjälp av klassen Player och viss data tilldelades dem. Metoden displayScore anropades med varje objekt och resultatet blev olika för var och en av dem.

Du kan även ha metoder med parametrar. Låt oss lägga till en ny metod som heter addScore som ökar poängen med ett angivet belopp och prova att använda 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 av resultatet att metoden uppdaterar poängen med 70 poäng.

1. Vilket är ett giltigt nyckelord för att deklarera en metod?

2. Vad blir utmatningen av följande kod?

question mark

Vilket är ett giltigt nyckelord för att deklarera en metod?

Select the correct answer

question mark

Vad blir utmatningen av följande kod?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 5
some-alt