Raj*_*aja 3 .net c# string value-type reference-type
在C#中,string是引用类型.然后,
为什么我需要让我的交换函数具有ref参数?
swap(ref string first, ref string second) //swap(string first, string second) doesn't work
{
temp = first;
first = second
second = temp;
}
Run Code Online (Sandbox Code Playgroud)
你混淆了两种不同的引用.字符串是对实例的引用.您的交换函数接受变量的引用.
这样想吧.你有两本书,"圣诞颂歌"和"匹克威克论文".他们是书; 他们有页面和文字等等.
你有十张纸.五说"圣诞颂歌".五说"匹克威克论文".这些论文是对书籍的参考.他们不是书.
你有十个标有A,B,C,D,E,F,G,H,I,J的抽屉.你把"A Christmas Carol"的文件放入抽屉A到E,以及那些写着"Pickwick Papers"的文章. "进入抽屉F到J.
现在你要交换抽屉E和I的内容.你需要给交换器什么信息?你不能告诉交换器"交换参考圣诞颂歌的Pickwick论文",因为这将改变所有十个抽屉,而不仅仅是E和I.您必须给交换器的信息是"E"和"I".你必须传递两个变量的引用; 变量本身包含对书籍的引用这一事实无关紧要.
你的交换器有三个自己的抽屉,标记为first,second和temp.它需要两张纸.一个人说"E",那个标有"第一个"的抽屉里面.一个人说"我",那个标签为"第二个"的抽屉里面.
交换器在"第一个"中查找,并找到一个说"E"的文件.它看起来是"E"并找到一篇说"圣诞颂歌"的论文.它制作了那张纸的复印件并将副本放在"临时"中......你知道这是怎样的,我希望如此.
| 归档时间: |
|
| 查看次数: |
1505 次 |
| 最近记录: |