背景
C#をメインでやっている割にしっかりとドキュメント読んでいなかったので(いや,マジで読めよ?って感じですが)C#関連のドキュメントを読んで個人的に覚えておこうと思ったモノとなります。paramsは2015/07/20時点で書かれてるドキュメントだった…恥ずかしい(自戒の念を込めて)
メソッドパラメーターparamsの注意点
paramsで宣言された型は1次元配列であることparamsは1つのみ使用可能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の事をどんどん好きになれる。