类:AnimalsAnimals animalList1 = new Animals();
Animals animalList2 = new Animals();
1.
if(animalList1==animalcule)
{}animalList1,animalList2是引用类型, 答案是false
2.
string str1 = "3";
string str2 = "3";
if (str1 == str2)
{}
str1,str2也是引用类型,结果怎么是true呢
Animals animalList2 = new Animals();
1.
if(animalList1==animalcule)
{}animalList1,animalList2是引用类型, 答案是false
2.
string str1 = "3";
string str2 = "3";
if (str1 == str2)
{}
str1,str2也是引用类型,结果怎么是true呢
解决方案 »
- C# CAD二次开发的重绘命令
- 关于文件摘要。。欢迎大神们进来讨论
- 多个DataTable放入一个新的DataTable中????
- Winform 紧急问题,高手请进
- 请教一个方法:TreeView的节点如何与ListBox的关联起来?
- 如何将datetime得出的系统时间2008/9/10转换成080910的格式?有没有这样的还数或属性啊?
- C#做三层结构erp 如何提高速度
- 求救:关于文件关联的问题(Vista上有问题)
- 双向打印的问题!
- 条形码字体code 128字库下载!
- winform dataGridView_RowsAdded事件
- 高分求解,C#调用COM的问题,out参数只能返回第一个元素的值
1.
if(animalList1==animalList2)
{}
打错了,不好意思
我能这么理解你的话吗?既然是同一个对象,那我“3”==“4”应该为true
引用类型则是按照对象地址看是否引用同一个对象,animalList1==animalcule类似于 Object.ReferenceEquals(animalList1,animalcule)
string是特殊的引用类型,好了!结贴
字符串的比较,可以参考以下两个原因中的一个,
1. 因为string类型重载了 == 运算符,使他们比较值,而不仅仅只是比较引用
2. 在C#中,所有相同的字符串,只保留一个副本。提高效率。这就是为什么字符串“不可以修改”的原因
字符串被修改了之后,原来字符串的引用计数被减1,而被修改的字符串变量则指向新的字符串地址。string a="3",b="3",c="3";a,b,c都指向了相同的内存地址。因为字符串只有一个副本。
2. 在C#中,所有相同的字符串常量,只保留一个内存副本。提高效率。这就是为什么字符串“不可以修改”的原因string a="3",b="3",c="3";
a,b,c都指向相同的字符串常量,常量字符串"3"引用数为3个a = "1231";之后
b,c指向字符串常量"3", 常量字符串"3"引用数为2个
系统新创建一个字符串常量"1231",并且a变量指向了它,常量字符串"1231"引用数为1个