ファイルの配列が渡されるこのメソッドがあります。/
次に、 anyをに置き換えます\\
。次に、メソッドを呼び出して配列を渡します。これにより、引数が新しい配列に入れられ、それがフォーマットされて、新しい配列が返されます。次に、同じメソッドを再度呼び出し、同じローカル配列を渡し、異なる形式で、out
両方の配列を渡します。問題は、2 番目のメソッド呼び出しが最初のメソッド呼び出しの形式を保持していることです。
public void Verify(string[] svnFiles, out string[] local, out string[] build)
{
//replace / with double \\
var transformed = TransformToFolders(svnFiles);
build = GetFiles(_buildPath, transformed);
local = GetFiles(_localPath, transformed);
}
private static string[] GetFiles(string path, params string[] files)
{
var moddedFiles = files;
for (var i = 0; i < files.Count(); i++)
moddedFiles[i] = string.Format(@"{0}\{1}", path, moddedFiles[i]);
return moddedFiles;
}
したがって、私が呼び出すとlocal = GetFiles(_localPath, transformed);
transformed
、 と同じ値になりmoddedFiles
ます。そのパラメーターを直接GetFiles
操作するために使用され、同じ動作を得ていたので、新しい配列を作成しようとしましたが、実際のコピーではなく参照に過ぎないようです。それの実際のコピーを作成する簡単な方法はありますか?files
moddedFiles
_localPath\_buildPath\moddedFile