teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

リンクのタイトルが間違っていた。

2018/02/18 09:27

投稿

raccy
raccy

スコア21768

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  なぜ、そのような動作になるのかを理解するには、Listが参照型であるということ、そして、C#の参照型はどのように変数に格納されているのかと言うことを理解できなくてはなりません。参照型の場合、変数に入っているのはそのデータそのものではなく、そのデータの実体を参照する**何か**(参考文献に載せているMSDNのドキュメントでは「参照(reference)」と書かれています、同様の仕組みがあるJavaでは「参照値(reference value)」と呼ばれているため、一般的に「参照値」と言われる場合が多いです)です。この**何か**を値渡しするのが、共有渡し(なので、「参照の値渡し」とも言われるますが、C#やJava以外の言語も考えると、実装上は「参照の値」というものではない場合もありえるため、適切かどうかは微妙なところです)になります。
4
4
 
5
- 注意して欲しいのは、参照渡しと参照型は全く異なる概念であるということです。[参照型 (C# リファレンス) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/ref)にも混同することがないように注意事項がわざわざ書いてあります。
5
+ 注意して欲しいのは、参照渡しと参照型は全く異なる概念であるということです。[ref (C# リファレンス) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/ref)にも混同することがないように注意事項がわざわざ書いてあります。
6
6
 
7
7
  参考文献
8
8
  * [参照型 (C# リファレンス) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/reference-types)