Structのメソッド
メニューを表示するにはスワイプしてください
構造体はデータフィールドだけでなく、メソッドも持つことができます。構造体内でのメソッドの作成方法は、一般的なメソッドの作成方法と同様です。
index.cs
123456789struct structureName { // some fields here (optional) public returnType methodName(parameter1, parameter2, ...) { // code } }
例:
index.cs
12345678910struct Player { public string name; public int score; public void displayScore() { Console.WriteLine($"{name} has {score} score"); } }
Player構造体には、displayScoreとnameを含む書式付きメッセージを表示するscoreメソッドが含まれています。nameとscoreの値は各**オブジェクト(インスタンス)**ごとに異なるため、displayScoreメソッドはオブジェクトごとに異なる出力を表示します。
メソッドにはvariableName.methodName()構文でアクセスして実行できます。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(); } }
この例では、Player クラスを使って2つのオブジェクトが作成され、それぞれにデータが割り当てられました。各オブジェクトで displayScore メソッドが呼び出され、それぞれ異なる出力が得られました。
パラメーターを持つメソッドも作成できます。スコアを指定した値だけ増やす新しいメソッド addScore を追加し、使用してみましょう:
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(); } }
出力から、このメソッドがスコアを 70 ポイント増やしていることがわかります。
1. メソッドを宣言するための有効なキーワードはどれですか?
2. 次のコードの出力はどうなりますか?
すべて明確でしたか?
フィードバックありがとうございます!
セクション 2. 章 5
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 2. 章 5