关于c#里的string 类型
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”;
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
所以有了如上结果。