0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

csharp > 名前付き引数渡し > func1(y:1, x:2); > キーワード引数

Last updated at Posted at 2015-09-27

引用: 即効入門 C#プログラミング すぐに現場で使える知識 by 中 博俊さんら

...引数は、「パラメータ名: 値」というように書くことで、任意の順番で値を渡すことができます。この場合、任意の場所の引数を省略できます。

using System;

public class Test
{
	public static void Main()
	{
		func1(1,2);
		func1(y:1, x:2);
		func1(y:4);
	}
	static void func1(int x=3, int y=1) {
		Console.WriteLine("x={0} y={1}", x, y);
	}
}
結果
Success	time: 0.04 memory: 23992 signal:0
x=1 y=2
x=2 y=1
x=3 y=4

func1()の三番目の呼び出しではxの値はdefault値(int x=3)が使われる。

default引数の使用はコードリーディングがしにくくなるので個人的には使わない。また、禁止しているコーディングルールもある。
そうなると、名前付き引数渡しの用途は以下だろうか。

  • 引数の指定順序を変更可能
  • 引数の名前を明確化

上記の二番目はReadable Codeなどで推奨している
func1(/* x= */1, /* y= */2)
という書き方を
func1(x:1, y:2)
で書けるということなのだろう。

以前、自分の記事に対して、Fortran90か95で名前付き引数の使い方をコメントいただいたが、検索しても出てこない。。。

RubyやFortranでは「キーワード引数」という用語のようだ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?