スポンサーリンク
※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~
名前付き引数とは
例えば、以下のようなPersonalメソッドを定義したとします。
static void Personal(int age, string name)
{
Console.WriteLine($”年齢:{age} 名前:{name}”);
}
このメソッドは、引数がint型、string型の順番に定義されています。
そのため、このメソッドを呼び出す時も、int型、string型の順番でないといけません。
Personal(17, “ボブ”);
もしも、順番を逆にした場合は、エラーになります。
//エラー
//Personal(“ボブ”, 17);
しかし、引数がたくさんあるメソッドを扱う場合、引数を書く順番が固定されているのは不便です。
名前付き引数を使用することで、メソッドを呼び出す際の、引数の順番を変えることができます。
名前付き引数を使用するには、引数名と引数に渡す値の間を「:」(コロン)で結びます。
Personal(name: “ボブ”, age: 17);
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Method10 { class Program { static void Main(string[] args) { Personal(17, "ボブ"); //エラー //Personal("ボブ", 17); //名前付き引数の使用 Personal(age:25, name:"トニー"); Personal(name: "ボブ", age: 17); } static void Personal(int age, string name) { Console.WriteLine($"年齢:{age} 名前:{name}"); } } } |
実行結果
年齢:17 名前:ボブ
年齢:25 名前:トニー
年齢:17 名前:ボブ
オーバーロードに関する注意事項
オーバーロードとは「戻り値や引数は異なるが、名前は同じメソッドを複数定義する」ことです。
実は、引数の組み合わせが同じでも、順番が異なればオーバーロードできます。
もしも、引数の順番が異なるだけのメソッドがある状況で、名前付き引数を使うとエラーになります。
なぜなら、どちらのメソッドを使えばいいか判断できなくなるからです。
※とはいえ、引数の順番が異なるだけで、機能が異なるメソッドが書かれているような場面はあまり想定できません。
ソースコード
※このコードはエラーになります
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Method11 { class Program { static void Main(string[] args) { //名前付き引数の使用 Personal(age: 25, name: "トニー"); Personal(name: "ボブ", age: 17); } static void Personal(int age, string name) { Console.WriteLine($"年齢:{age} 名前:{name}"); } static void Personal(string name, int age) { Console.WriteLine($"名前:{name} 年齢:{age}"); } } } |
関連記事
~プログラミングを勉強してみませんか?~
TechAcademy [テックアカデミー] は無料の体験講座が用意されているので、気軽に体験できます。
※私(サイト主)も無料体験講座を実際に受けてみました(→感想)