Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Métodos de Struct | Structs e Enumeradores
C# Além do Básico

bookMétodos de Struct

Uma estrutura também pode ter métodos além dos campos de dados. Em uma struct, você cria um método de forma semelhante à criação de um método em geral:

index.cs

index.cs

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

Por exemplo:

index.cs

index.cs

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

Na estrutura Player, há um método chamado displayScore que exibe uma mensagem formatada contendo o name e o score. É importante observar que os valores de name e score serão diferentes para cada objeto (instância), o que significa que o método displayScore apresentará uma saída diferente para cada objeto.

É possível acessar e executar o método utilizando a sintaxe variableName.methodName(). Veja como utilizar a estrutura 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(); } }

No exemplo, dois objetos foram criados usando a classe Player e alguns dados foram atribuídos a eles. O método displayScore foi chamado usando cada objeto e a saída foi diferente para cada um deles.

Também é possível ter métodos com alguns parâmetros. Vamos adicionar um novo método chamado addScore, que aumenta a pontuação por uma quantidade especificada, e tentar utilizá-lo:

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

É possível observar pela saída que o método atualiza a pontuação em 70 pontos.

1. Qual é uma palavra-chave válida para declarar um método?

2. Qual será a saída do código a seguir?

question mark

Qual é uma palavra-chave válida para declarar um método?

Select the correct answer

question mark

Qual será a saída do código a seguir?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

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

bookMétodos de Struct

Deslize para mostrar o menu

Uma estrutura também pode ter métodos além dos campos de dados. Em uma struct, você cria um método de forma semelhante à criação de um método em geral:

index.cs

index.cs

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

Por exemplo:

index.cs

index.cs

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

Na estrutura Player, há um método chamado displayScore que exibe uma mensagem formatada contendo o name e o score. É importante observar que os valores de name e score serão diferentes para cada objeto (instância), o que significa que o método displayScore apresentará uma saída diferente para cada objeto.

É possível acessar e executar o método utilizando a sintaxe variableName.methodName(). Veja como utilizar a estrutura 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(); } }

No exemplo, dois objetos foram criados usando a classe Player e alguns dados foram atribuídos a eles. O método displayScore foi chamado usando cada objeto e a saída foi diferente para cada um deles.

Também é possível ter métodos com alguns parâmetros. Vamos adicionar um novo método chamado addScore, que aumenta a pontuação por uma quantidade especificada, e tentar utilizá-lo:

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

É possível observar pela saída que o método atualiza a pontuação em 70 pontos.

1. Qual é uma palavra-chave válida para declarar um método?

2. Qual será a saída do código a seguir?

question mark

Qual é uma palavra-chave válida para declarar um método?

Select the correct answer

question mark

Qual será a saída do código a seguir?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5
some-alt