配列は参照渡し
メソッドの引数の扱いは、
- 参照渡し
- クラス
- 値渡し
- 構造体と組み込みの数値*1
で覚えてて、いや、まぁこれはたぶんあってるんだけど、それはさておき。組み込みの数値が値渡しなので、数値の配列も値渡しだろうって思ってコード書いてたらドツボにはまった。というわけで、自戒の念をこめてメモ。
念のためMSDNを引いたら
配列型は、抽象基本型 Array から派生した参照型です。この型は IEnumerable と IEnumerable<(Of <(T>)>) を実装するので、C# のすべての配列で foreach 反復処理を使用できます。
http://msdn.microsoft.com/ja-jp/library/9b9dty7d.aspx
って、わざわざ『参照型』ですって強調して書いてあった・・・orz
参照型であることと、参照渡しされることの間には関係はないようです。
詳しくはコメント欄のbleis-tift様のコメントにて。
bleis-tift様、ご指摘ありがとうございます。
*1:てか、これも構造体だけど