この記事は2019年12月19日に投稿しました。
目次
リンク
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