关于 STRING 的 Equals 与 ==

string aa = "a";
            string bb = "a";
            if (aa == bb)
            {
                Console.Write("true");
            }
            else
            {
                Console.Write("FALSE");
            }
            Console.WriteLine(aa.Equals(bb));Console.ReadKey();
可是结果竟然全部是TRUE !!!!!!我从很多书上都看到过比较引用类型的时候不都比较的是引用地址么!!!!!!!!
至少有一个应该是FALSE吧

后来我又试了这个 Console.WriteLine(Object.ReferenceEquals(aa, bb));
仍然然没用啦 结果还是 TRUE


大话西游666
浏览 375回答 2
2回答

叮当猫咪

== 操作符比较的是两个变量的值是否相等,或两个引用是不是指向同一个内存地址.equals()方法比较的是两个对象指向的内存空间里的内容是不是相同.也就是比较两个"引用类型"是否是对同一个对象的引用. aa 和 bb 的值在堆栈中是一样的,在栈中的内容也是一样的,aa和bb是对同一内容的引用
打开App,查看更多内容
随时随地看视频慕课网APP