Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9711

C#の可変引数メソッドパラメーターparams

$
0
0

背景

C#をメインでやっている割にしっかりとドキュメント読んでいなかったので(いや,マジで読めよ?って感じですが)C#関連のドキュメントを読んで個人的に覚えておこうと思ったモノとなります。
paramsは2015/07/20時点で書かれてるドキュメントだった…恥ずかしい(自戒の念を込めて)

メソッドパラメーターparamsの注意点

  • paramsで宣言された型は1次元配列であること
  • params1つのみ使用可能
  • params以外で宣言された型を複数使用する場合paramsは最後に宣言する
  • パラメーターを渡さなくても呼び出し可能だが、params長さはゼロとなる

サンプル

publicclassVariableParameter{publicVariableParameter(){}publicstaticstring[]DeleteDuplicateFromArray(paramsstring[]str){returnstr.Distinct().ToArray();}// この場合、paramsは最後publicstaticvoidShowStringArray(paramsstring[]strArr){if(strArr.Length!=0){foreach(varsinstrArr){Console.WriteLine(s);}}else{Console.WriteLine($"パラメーターの長さが{strArr.Length}です。");}}}classProgram{privatestaticvoidMain(string[]args){string[]strArr={"test1","test1","test2","test3","test4"};varresult1=VariableParameter.DeleteDuplicateFromArray(strArr);VariableParameter.ShowStringArray(result1);// 一応呼べる(リストの長さはゼロになる)varresult2=VariableParameter.DeleteDuplicateFromArray();VariableParameter.ShowStringArray(result2);}}

出力結果

test1
test2
test3
test4
パラメーターの長さが0です。

まとめ

ドキュメントを読むとキャッチアップしていないだけで,知らない事がかなりある
新機能なども見ると面白くて,C#8.0から使えるパターンマッチングの拡張usingの宣言も「そんな事出来たのね...」という感覚でした。
言語学習に対するフォーカスを変えて良かった。そしてMicrosoftの事をどんどん好きになれる。

参考

Microsoft Docs


Viewing all articles
Browse latest Browse all 9711

Trending Articles