您好、欢迎来到现金彩票网!
当前位置:2019欢乐棋牌 > 值参 >

关于C的值参数和引用参数(ref)的问题

发布时间:2019-07-02 07:45 来源:未知 编辑:admin

  为什么这两个方法会输出不同的结果?然后调用Swap(string str1, string str2)为什么不能交换两个字符串的值?

  并不是将str1和str2指向的值进行交换,而是将str1指向原str2所指的字符串,

  将str2指向原str1所指的字符串,由于字符串没有改变,first和second还是指向

  原先的字符串,因此first和second的值没有变。展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部基本数据类型是值类型,做实参的时候是复制的备份,而对象引用是把地址传过去。更多追问追答追问string类型不是值类型的,而是引用类型的追答出处?追问书籍《C#本质论(第4版)》

  p234:“除了string和object是引用类型,所有C#”内建“类型(如bool和decimal)都是值类型”。追答说下我的理解:

  确实string是引用类型,刚刚我也查了一下msdn。当引用类型作为参数的时候,实际上是把其指针的复制品作为实参,因此不管你在函数内部如何改变,都不会影响函数外原本的引用位置。当你用了ref修饰符,则把真正的指针传进去了,才能影响到。

  但string确实比较奇怪,有时候又像是值类型,以至于以前我一直误解了。

  “字符串对象是不可变的:即它们创建之后就无法更改。 所有看似修改字符串的 String 方法和 C# 运算符实际上都以新字符串对象的形式返回结果。”

http://acetechpng.com/zhican/151.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有