Metodi Struct
Una struttura può anche avere metodi oltre ai campi dati. In una struct, si crea un metodo in modo simile a come si crea un metodo in generale:
index.cs
123456789struct structureName { // some fields here (optional) public returnType methodName(parameter1, parameter2, ...) { // code } }
Ad esempio:
index.cs
12345678910struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } }
Nella struttura Player
è presente un metodo chiamato displayScore
che visualizza un messaggio di output formattato contenente name
e score
. È importante notare che i valori di name
e score
saranno diversi per ogni oggetto (istanza), il che significa che il metodo displayScore
mostrerà un output diverso per ciascun oggetto.
È possibile accedere ed eseguire il metodo utilizzando la sintassi variableName.methodName()
. Vediamo come utilizzare la struttura Player
:
index.cs
123456789101112131415161718192021222324252627282930using 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(); } }
Nell'esempio, sono stati creati due oggetti utilizzando la classe Player
e sono stati assegnati loro alcuni dati. Il metodo displayScore
è stato chiamato utilizzando ciascun oggetto e l'output è risultato diverso per ognuno di essi.
È anche possibile avere metodi con alcuni parametri. Aggiungiamo un nuovo metodo chiamato addScore
che aumenta il punteggio di una quantità specificata e proviamo a utilizzarlo:
index.cs
12345678910111213141516171819202122232425262728293031using 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(); } }
Dall'output si può vedere che il metodo aggiorna il punteggio di 70
punti.
1. Qual è una parola chiave valida per dichiarare un metodo?
2. Quale sarà l'output del seguente codice?
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
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
Metodi Struct
Scorri per mostrare il menu
Una struttura può anche avere metodi oltre ai campi dati. In una struct, si crea un metodo in modo simile a come si crea un metodo in generale:
index.cs
123456789struct structureName { // some fields here (optional) public returnType methodName(parameter1, parameter2, ...) { // code } }
Ad esempio:
index.cs
12345678910struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } }
Nella struttura Player
è presente un metodo chiamato displayScore
che visualizza un messaggio di output formattato contenente name
e score
. È importante notare che i valori di name
e score
saranno diversi per ogni oggetto (istanza), il che significa che il metodo displayScore
mostrerà un output diverso per ciascun oggetto.
È possibile accedere ed eseguire il metodo utilizzando la sintassi variableName.methodName()
. Vediamo come utilizzare la struttura Player
:
index.cs
123456789101112131415161718192021222324252627282930using 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(); } }
Nell'esempio, sono stati creati due oggetti utilizzando la classe Player
e sono stati assegnati loro alcuni dati. Il metodo displayScore
è stato chiamato utilizzando ciascun oggetto e l'output è risultato diverso per ognuno di essi.
È anche possibile avere metodi con alcuni parametri. Aggiungiamo un nuovo metodo chiamato addScore
che aumenta il punteggio di una quantità specificata e proviamo a utilizzarlo:
index.cs
12345678910111213141516171819202122232425262728293031using 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(); } }
Dall'output si può vedere che il metodo aggiorna il punteggio di 70
punti.
1. Qual è una parola chiave valida per dichiarare un metodo?
2. Quale sarà l'output del seguente codice?
Grazie per i tuoi commenti!