+ -
当前位置:首页 → 问答吧 → 如何用代码证明string类型是引用类型?

如何用代码证明string类型是引用类型?

时间:2011-12-06

来源:互联网

这是一道面试题。
请高手帮忙解答。
谢谢。

作者: luzhenhua0207   发布时间: 2011-12-06

看看能不能为null不就得了

作者: zh6335901   发布时间: 2011-12-06

引用类型 可以为空
值类型 不能为空(数据库中除外)

作者: mizuho_2006   发布时间: 2011-12-06

还可以用泛型约束证明 where T:class

作者: zh6335901   发布时间: 2011-12-06

C# code
string a = "hello";
string b = "h";
b += "ello";// Append to contents of 'b'
Console.WriteLine(a == b);//true
Console.WriteLine((object)a == (object)b);//false

作者: microtry   发布时间: 2011-12-06

之所以先显示“True”,然后显示“False”,
是因为字符串的内容是相同的,但是 a 和 b 引用的不是同一个字符串实例。

作者: microtry   发布时间: 2011-12-06

Console.Write("abc" is ValueType);

作者: dalmeeme   发布时间: 2011-12-06

多么无聊的问题。其实这个问题无解。相对来说,可能6L的靠谱一些。

作者: caozhy   发布时间: 2011-12-07

引用 4 楼 microtry 的回复:
C# code

string a = "hello";
string b = "h";
b += "ello";// Append to contents of 'b'
Console.WriteLine(a == b);//true
Console.WriteLine((object)a == (object)b);//false

这个有些搞笑。
C# code
int a = 1;
int b = 1;
Console.WriteLine(a == b); //true
Console.WriteLine((object)a == (object)b); //false

这个代码怎么解释呢?

作者: caozhy   发布时间: 2011-12-07

值类型是存放在栈上的,而引用类型是放在堆中,堆中存放有类型各个属性的引用。

作者: Tsapi   发布时间: 2011-12-07