晒してみる…
以下原文まま(VBです)
Private Function GetPathJoin(meinPath As String, ParamArray joinPath() As String) As String For Each joinstring in joinPath meinPath += "\" & joinstring Next return meinPath End Function
以下機械的にC#にしただけのもの
private string GetPathJoin(sting meinPath, params string[] joinPath) { foreach(var joinstring in joinPath) meinPath +="\\" + joinstring; return meinPath; }
このコードは業務で実際に作成されたものです。
見ての通り?業務Logicは含まれていません
これ、どうなんでしょう?
このコードは、private(BL層のclass)に作成されています。
Loopの中で文字列を加算演算子を使って結合しています。
第一引数はstringで、第二引数はstringの可変長引数です
private string GetPathJoin(params string[] joinPath) { return string.Join("\\" , joinPath); }
このコードと結果は同じでは?
各要素の最後が"\"の場合が想定されていないのが気になります。
全て受け入れたとしても、Path.Combine(params string[])を再作成しているだけだと言うのが特に気になります。
(結果が同じになるとは限らないんですが、目的(文字列要素をPathの構成要素として連結する)がという意味で)
結局、これを書いた方は何を考えていたのかが未だ不明です。
同project内でもPath.Combineは使っているので…
今回はただ愚痴と言うか、文句になっていますが、アンチパターンとして誰かの役に立てばいいなと…