VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: duck042432

string ,值类型 引用类型的问题

[复制链接]

1

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-4 16:51:01 | 显示全部楼层
芬恩克莱尔  
-----------------------------------------
  你说的“str = "string being converted.";

把str指向了另一个东西,而str1仍然指向"str"。


这里的"string being converted."; 在内存中到底被谁 指向了 ?    str只是是形式参数吧,实际上是被谁那个指针指着了 ? string being converted."; 好象没有指针,那么想要输出string being converted.";  该怎么样了 (不用ref)
回复

使用道具 举报

1

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
 楼主| 发表于 2020-1-4 17:03:01 | 显示全部楼层
我要把题目中的str1全部改为str 答案还是一样的 ~~
那么在堆栈中出现了2个同名的指针str??  作用域的问题~(全局变量和局部变量的问题??)~
以前用string 还没出现什么大的问题 这次后我每次用都要考虑下了
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-1-5 08:27:01 | 显示全部楼层
TO:static void StringConvert(string str)
{
           str = "string being converted.";
      }
static void Main()
{
string str1 = "str";

StringConvert(str1);
.....

是这样的:
string str1="str";
执行这句会在内存中分配一块地址,放入"str",并由str1指向它..

调用StringConvert(str1);后,str指向str1,也就是"str"所在的地址,但在方法中有这么一句代码:str = "string being converted.";这时会在内存中另外开辟一块空间存放"string being converted.",并由str指向它,但此时str1还是指向"str",并没有改变..

这是我的理解..仅供参考..
回复

使用道具 举报

0

主题

9

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-1-6 09:42:01 | 显示全部楼层
参看我的blog,说不定对你理解有点用处
http://blog.csdn.net/yonger/
回复

使用道具 举报

1

主题

5

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-6 10:33:01 | 显示全部楼层
回复

使用道具 举报

0

主题

17

帖子

14.00

积分

新手上路

Rank: 1

积分
14.00
发表于 2020-1-7 00:54:01 | 显示全部楼层
yujunziling  


   
C#的string有点特殊,它实际上是一个值类型,但是拥有某些引用类型的特征,也就是说在它本质外面被包装了一层对象特征.

  
=====================================
除了这个回答,其他的都可以看。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-11 06:54:01 | 显示全部楼层
权威解释:
此并不是string引用的特殊性,而string操作本身的特殊性
C#规范规定string对象一经建立就不在修改
如果对一个string引用的内容进行修改,则丢弃原来的引用单元,并引用包含有新值的单元
这就解释了上述情况所谓string类型引用与object类型引用的特殊性。
回复

使用道具 举报

0

主题

8

帖子

8.00

积分

新手上路

Rank: 1

积分
8.00
发表于 2020-8-15 17:00:01 | 显示全部楼层
认错,查阅了一下我果然是在胡说八道...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表