Object类的用法(三)

    技术2022-05-11  65

    using System;using System.Collections.Generic;using System.Text;

    namespace String._002{    class Program    {        static void Main(string[] args)        {            string s = "Hello";          string t = (string)s.Clone();   // 不复制;s 和 t 引用同一个字符串           //相当于 string t = "Hello"也相当于string t = s;                       bool testbool = (object)s == (object)t;            Console.WriteLine(testbool);   //true

                string u = string.Copy(s); // 进行复制,s 和 u 引用不同的对象            Console.WriteLine(s == u);// true 判别str的值是否和strCopy的值是否相等//实际上是值比较

                Console.WriteLine((object)s == (object)u);// false 判别str所指的对象是否和strCopy所指的对象相同            //实际上是比较两个引用是否相等,也是比较地址是否相等

                Console.WriteLine(Object.ReferenceEquals(s, t));// true 判别s所指的对象是否和t所指的对象相同            //实际上是比较两个引用是否相等,也是比较地址是否相等

                Console.WriteLine(Object.ReferenceEquals(s, u));// false 判别s所指的对象是否和u所指的对象相同            //实际上是比较两个引用是否相等,也是比较地址是否相等

                Console.WriteLine(s.Equals(t));   //true            Console.WriteLine(Equals(s, t));  //true

                Console.WriteLine(s.Equals(u));   //true            Console.WriteLine(Equals(s, u));  //true

                int a = 8;            int b = 8;            Console.WriteLine((object)a == (object)b);//false  比较的是引用            Console.WriteLine(ReferenceEquals(a, b)); //false  比较的是引用            Console.WriteLine(a.Equals(b));           //true   比较的是值和类型            Console.WriteLine(Equals(a, b));          //true   比较的是值和类型          

                string ret = string.Format("s same as t: {0}, s same as u: {1}",               Object.ReferenceEquals(s, t), (object)s == (object)u);            Console.WriteLine(ret);

                Console.ReadKey();

               

            }    }} 


    最新回复(0)