关于c#里的string 类型(转http://xianyun0216.blog.51cto.com/714887/167194)
来源:互联网 发布:qq举报软件安卓版 编辑:程序博客网 时间:2024/04/27 19:13
String 是字符串类型,它是个特殊的引用类型,特殊特殊到那呢?一直不解,近期大概发现了一些特殊。
String a=“abc”;
String b=”abc”;
这里的a 和b 不但值相同而且其引用的内存区域也相同。
当将b变成“bcd”时候,b的引用就不再指向a所指向的内存区域。
而是重新开辟了另一块内存空间。
(其实更严格的说是b 找所有的内存区域,如果没有和所指向区域值相同的内存区域则开辟新的,放置这前所未有的值)
而且在c#中要判断两个string类的对象的值是否相同,有两种方法即
(
1,==
2,equals()
);
要是想判断他们是否指向同一个引用则这两个对象向上转型,
转成object对象。
下面是一个经典的题:
Class test
{
Public static void change(string x, string y)
{
x=”bcd”;
y=x;
Console.writeLine(x)
Console.writeLine(y)
}
Static void main(string [] args)
{
String a=”abc”;
String b=”bcd”;
Change(a,b);
Console.writeLine(a);
Console.writeLine(b);
Console.ReadLine();
}
}
输出后结果:
bcd
bcd
abc
bcd
a
b
abc
bcd
当调用方法时:
Chang(a,b);
就相当于做了
String x=a
String y=b;
于是就有了:
a
b
abc
bcd
x
y
当执行
x=”bcd”;
y=x;
a
b
abc
bcd
x
y
所以有了如上结果。
String是引用类型值传递;
数组是值类型引用传递
本文出自 51CTO.COM技术博客
注:String 是引用类型,不过是不可变的。对字符串做一些操作(比如大小写的转换、+=), 实际上是重新创建了一个字符串(重新分配一块内存)。这也是为什么在做大量字符串拼接的时候要使用StringBuilder 而不用+=。
- 关于c#里的string 类型(转http://xianyun0216.blog.51cto.com/714887/167194)
- C#委托实践(理解---转自:http://wangjierui.blog.51cto.com/186879/41225)
- sha1加密(C# VS2005)(转自:http://yardan.blog.51cto.com/304821/60705)
- 我的博客 http://realzjy.blog.51cto.com
- http://enchen.blog.51cto.com/716040
- http://xcshen.blog.51cto.com/流媒体
- http://cxxsoft.blog.51cto.com
- 转自51cto(http://smailes.blog.51cto.com/rss.php?uid=28248)
- Blog主场转至51CTO.com
- SQL中以count及sum为条件的查询---转(http://kiddymeet.51cto.com/blog/20194/19376)
- IHttpModule.Init会被调用多次的原因(转自:http://lidup.blog.51cto.com/426277/140338)
- Linux嵌入式系统与硬件平台的关系——转自http://itlin.blog.51cto.com/519307/134301
- Tomcat原理详解和各种集群的实现(转自:http://harisxiong.blog.51cto.com/7513022/1304746)
- http://fxh7622.blog.51cto.com/63841/337456
- http://lavasoft.blog.51cto.com/62575/27069/
- 博客换了地方http://byteh.blog.51cto.com/
- 搬家了http://opheliawei.blog.51cto.com/
- http://zhangziqiang.blog.51cto.com/698396/500213
- 关于 LOVE 的优美语句
- 点亮智慧人生
- Ogre中渲染到纹理的步骤
- C语言--水仙花
- 解决了USB中suspend和resume的一个问题
- 关于c#里的string 类型(转http://xianyun0216.blog.51cto.com/714887/167194)
- Flex——Flash Player Not Found
- Understanding and Managing Transaction Logs--Transaction Log Logical Architecture
- OGRE 使用技巧总结
- C# winform 开发之Excel操作(一)------打开Exce表
- 开始c++图像处理
- CUDA_环境配置中常遇到的问题
- 家败不离一个 奢 字,人败不离一个逸字 ,也许别人深懂这个道理
- Ogre的分页大地形场景管理器PLSM2使用手记