スポンサーリンク
※サイト運営にサーバーは必須です※
~ ロリポップ! はコスパのよい初心者向けサーバーです~
目次
省略可能な引数
メソッドにおいて、あらかじめ規定値(デフォルト値)を決めることができます。
その結果、メソッドを呼び出す時に、引数を省略することができます。
※「省略可能な引数」は、「オプション引数」と呼ばれることもあります。
ソースコード
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 Default02 { class Program { static void Main(string[] args) { Personal(); Personal(25); Personal(25, "トニー"); //エラー //Personal("トニー"); Personal(name:"トニー");//名前付き引数 } static void Personal(int age = 0, string name = "名無し") { Console.WriteLine($"年齢:{age} 名前:{name}"); } } } |
実行結果
年齢:0 名前:名無し
年齢:25 名前:名無し
年齢:25 名前:トニー
年齢:0 名前:トニー
定義したPersonalメソッドでは、age の規定値が「0」、 name の規定値が「”名無し”」となっています。
nameの方だけ規定値を使いたくない場合、「名前付き引数」をつかって、nameの値を指定してあげる必要があります。
このことから、規定値以外の値を使う可能性が高い引数ほど前に用意した方がいいことがわかります。
省略可能な引数の指定
規定値(デフォルト値)を全てに設定する必要はありません。
ソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Default03 { class Program { static void Main(string[] args) { Personal(25); Personal(25, "トニー"); } static void Personal(int age, string name = "名無し") { Console.WriteLine($"年齢:{age} 名前:{name}"); } } } |
実行結果
年齢:25 名前:名無し
年齢:25 名前:トニー
省略可能な引数の優先度
省略可能な引数を使っているメソッドと、省略可能な引数を使っていないメソッドが被った場合、省略可能な引数を使っていないメソッドが優先されます。
ソースコード
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 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Default04 { class Program { static void Main(string[] args) { Personal(25); //Personal(int age)の方が呼び出される } static void Personal(int age) { Console.WriteLine($"年齢:{age}"); } static void Personal(int age = 0, string name = "名無し") { Console.WriteLine($"年齢:{age} 名前:{name}"); } } } |
実行結果
年齢:25
関連記事
~ギャンブルに絶対儲かる必勝法があるのだろうか?~
私(サイト主)はこの疑問に対して非常に興味を持ち、プログラミングで検証してみました。
このサイトを応援してもいいかなと思う人はぜひとも購入を検討してみてください。