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

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