Course Content
C# Beyond Basics
C# Beyond Basics
Struct Methods
A structure can also have methods apart from data fields. In a Struct, we create a method similar to how we create a method in general:
index
struct structureName { // some fields here (optional) public returnType methodName(parameter1, parameter2, ...) { // code } }
For-example:
index
struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } }
In the Player
structure we have a method called displayScore
which displays a formatted output message containing the name
and score
. It is important to note that the name
and score
values will be different for each object (instance), which means that the displayScore
method will show a different output for each object.
We can access and execute the method using the variableName.methodName()
syntax. Let's look at how we will use the Player
structure:
index
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(); } }
In the example, two objects were created using the Player
class and some data was assigned to them. The displayScore
method was called using each object and the output turned out to be different for each of them.
We can also have methods with some parameters. Let's add a new method called "addScore" which increases the score by a specified amount and try using it:
index
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(); } }
You can see from the output that the method updates the score by 70
points.
Everything was clear?