C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#の名前付きパラメーターとは?基本の使い方とメリットをわかりやすく解説

C#の名前付きパラメーター(名前付き引数)を使うと、呼び出すメソッドのパラメーターリストにおける引数の順序を覚えたり調べたりする手間が省けます。各引数には、パラメーター名を指定することで対応関係を明示できます。

NamedParameterFunction(firstName: "Hello", lastName: "World")

名前付きパラメーターを使用すれば、名前さえ指定していれば、引数をどのような順序で渡しても問題ありません。名前に基づいて、正しい値が正しい変数へ自動的にマッピングされます。ただし、指定する引数名はメソッド定義側のパラメーター名と一致している必要がある点に注意してください。

さらに、名前付き引数は「それぞれの引数が何を表しているのか」が一目でわかるため、コードの可読性向上にも大きく貢献します。

サンプルコード

using System;
namespace DemoApplication{
    class Demo{
        static void Main(string[] args){
            NamedParameterFunction("James", "Bond");
            NamedParameterFunction(firstName:"Mark", lastName:"Wood");
            NamedParameterFunction(lastName: "Federer", firstName: "Roger");
            Console.ReadLine();
        }
        public static void NamedParameterFunction(string firstName, string lastName){
            Console.WriteLine($"FullName: {firstName} {lastName}");
        }
    }
}

実行結果

上記のコードを実行すると、次の出力が得られます。

FullName: James Bond
FullName: Mark Wood
FullName: Roger Federer

この例では、NamedParameterFunction(lastName: "Federer", firstName: "Roger") のように、引数がメソッド定義の順序とは異なる形で渡されています。しかし、名前付きパラメーターを使用しているため、引数は名前に基づいて正しくマッピングされ、期待どおりの出力「Roger Federer」が得られます。

名前付きパラメーターの主なメリット

  • 引数の順序を意識せずにメソッドを呼び出せる
  • 各引数の意味が明確になり、コードの可読性・保守性が向上する
  • オプション引数(既定値を持つパラメーター)と組み合わせることで、必要な引数だけを渡せる柔軟な設計が可能になる
  1. C#の名前空間(namespace)とは?定義方法と基本的な使い方を解説

    名前空間とは名前空間(namespace)とは、ある一連の名前を別の一連の名前から分離して管理するための仕組みです。大規模なプロジェクトでは、複数の開発者が同じ名前のクラスやメソッドを作成することがあり、名前の衝突(コンフリクト)が発生する可能性があります。名前空間を使うことで、こうした衝突を防ぎ、コードを論理的に整理できます。また、.NET Framework が提供する System なども名前空間の一つであり、標準ライブラリの機能はすべて名前空間によって分類・管理されています。名前空間の定義方法名前空間の定義は、namespace キーワードで始まり、その後に名前空間名を続けて記述します

  2. 【C#入門】パラメーターの渡し方を解説!値渡しと参照渡しの違いとは?

    C#では、パラメーターを受け取るメソッドを呼び出す際、引数をメソッドに渡す方法がいくつかあります。代表的な方法として「値パラメーター(値渡し)」と「参照パラメーター(参照渡し)」の2つがあります。それぞれの仕組みと動作の違いを詳しく見ていきましょう。 値パラメーター(値渡し) 値渡しでは、引数の実際の値が関数の仮引数にコピーされます。このとき、メソッドが呼び出されると各パラメーターごとに新しいストレージ領域が作成され、そこへ実引数の値がコピーされます。 そのため、メソッド内でパラメーターにどのような変更を加えても、呼び出し元の引数には一切影響しません。C#では、これが最も基本的なパラメーター