Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Rakenteiden Metodit | Rakenteet ja Enumeraattorit
C# Perusteiden Jälkeen

bookRakenteiden Metodit

Rakenne voi sisältää myös metodeja tietokenttien lisäksi. Rakenteessa metodi luodaan samalla tavalla kuin yleensäkin metodin luominen:

index.cs

index.cs

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

Esimerkiksi:

index.cs

index.cs

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

Player-rakenteessa on metodi nimeltä displayScore, joka näyttää muotoillun viestin sisältäen name- ja score-arvot. On tärkeää huomata, että name ja score ovat erilaisia jokaiselle oliolle (instanssille), mikä tarkoittaa, että displayScore-metodi näyttää eri tulosteen jokaiselle oliolle.

Metodia voi käyttää ja kutsua syntaksilla variableName.methodName(). Katsotaanpa, miten Player-rakennetta käytetään:

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(); } }

Esimerkissä luotiin kaksi oliota käyttäen Player-luokkaa ja niille asetettiin tietoja. displayScore-metodia kutsuttiin kummankin olion kautta, ja tulos oli erilainen kummallekin.

Voit myös määrittää metodeja, joilla on parametreja. Lisätään uusi metodi nimeltä addScore, joka kasvattaa pistemäärää määritellyllä arvolla, ja kokeillaan sen käyttöä:

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(); } }

Tulosteesta näet, että metodi päivittää pistemäärän 70 pisteellä.

1. Mikä seuraavista on kelvollinen avainsana metodin määrittelyyn?

2. Mikä on seuraavan koodin tuloste?

question mark

Mikä seuraavista on kelvollinen avainsana metodin määrittelyyn?

Select the correct answer

question mark

Mikä on seuraavan koodin tuloste?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

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

bookRakenteiden Metodit

Pyyhkäise näyttääksesi valikon

Rakenne voi sisältää myös metodeja tietokenttien lisäksi. Rakenteessa metodi luodaan samalla tavalla kuin yleensäkin metodin luominen:

index.cs

index.cs

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

Esimerkiksi:

index.cs

index.cs

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

Player-rakenteessa on metodi nimeltä displayScore, joka näyttää muotoillun viestin sisältäen name- ja score-arvot. On tärkeää huomata, että name ja score ovat erilaisia jokaiselle oliolle (instanssille), mikä tarkoittaa, että displayScore-metodi näyttää eri tulosteen jokaiselle oliolle.

Metodia voi käyttää ja kutsua syntaksilla variableName.methodName(). Katsotaanpa, miten Player-rakennetta käytetään:

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(); } }

Esimerkissä luotiin kaksi oliota käyttäen Player-luokkaa ja niille asetettiin tietoja. displayScore-metodia kutsuttiin kummankin olion kautta, ja tulos oli erilainen kummallekin.

Voit myös määrittää metodeja, joilla on parametreja. Lisätään uusi metodi nimeltä addScore, joka kasvattaa pistemäärää määritellyllä arvolla, ja kokeillaan sen käyttöä:

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(); } }

Tulosteesta näet, että metodi päivittää pistemäärän 70 pisteellä.

1. Mikä seuraavista on kelvollinen avainsana metodin määrittelyyn?

2. Mikä on seuraavan koodin tuloste?

question mark

Mikä seuraavista on kelvollinen avainsana metodin määrittelyyn?

Select the correct answer

question mark

Mikä on seuraavan koodin tuloste?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5
some-alt