プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

C#で可変長引数のメソッドを定義する

この記事は2019年12月19日に投稿しました。

f:id:paveway:20190914064630j:plain

目次

  1. はじめに
  2. C#で可変長引数のメソッドを定義する
  3. おわりに

1. はじめに

こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。
今回は業務で使用しているC#で可変長引数のメソッドを定義する方法についてです。

目次へ

2. C#で可変長引数のメソッドを定義する

C#で可変長引数のメソッドを定義するには、引数をparamsキーワードで定義します。
paramsキーワードで定義した引数は、

  • 引数なし
  • 空配列
  • データが設定された配列

を渡すことができます。
引数なしで呼び出した場合、空配列が渡された時の動作となります。

制限としては、paramsキーワードはメソッドの最後の引数にしか付加できません。

実装例

using System;

namespace CSharpParams
{
    class Program
    {
        /**
         * @brief 可変長引数の持つメソッド
         *
         * @param [in] items 可変長引数
         */
        private void Func(params string[] items)
        {
            // 引数がnullの場合
            if (items == null)
            {
                Console.WriteLine("items is null.");
            }

            // 引数が空の配列の場合
            else if (items.Length == 0)
            {
                Console.WriteLine("items is empty.");
            }

            // 引数がデータを設定された配列の場合
            else
            {
                foreach (var item in items)
                {
                    Console.WriteLine(item);
                }
            }
        }

        static void Main(string[] args)
        {
            var program = new Program();

            // 引数にnullを指定した場合
            program.Func(null);

            // 引数に何も指定しない場合
            program.Func();

            // 引数に空の配列を指定した場合
            var items1 = new string[] { };
            program.Func(items1);

            // 引数にデータが設定された配列を指定した場合
            var items2 = new string[] { "apple", "banana", "orange" };
            program.Func(items2);

            Console.ReadKey();
        }
    }
}

実行結果

items is null.
items is empty.
items is empty.
apple
banana
orange

3. おわりに

C#の特殊な機能を探していた時に見つけました。
機会があれば利用したいと思います。

紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。

目次へ


私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。

また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688

目次へ