首页 > Windows开发 > 详细

C#对象比较的总结

时间:2017-03-02 15:20:15      阅读:258      评论:0      收藏:0      [点我收藏+]
            int m1 = 2;
            int m2 = 2;

            Console.WriteLine(m1 == m2);//值比较True
            Console.WriteLine(m1.Equals(m2));//值比较True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//引用False

 

            object m1 = 2;
            object m2 = 2;

            Console.WriteLine(m1 == m2);//引用类型引用比较False
            Console.WriteLine(m1.Equals(m2));//Object虚方法值比较True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//引用False

 

            int m1 = 3434;
            int m2 = m1;

            Console.WriteLine(m1 == m2);//值比较True
            Console.WriteLine(m1.Equals(m2));//值比较True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//引用比较False

 

            object m1 = 2;
            int m2 = 2;

            Console.WriteLine(m1.Equals(m2));//Object虚方法值比较True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//引用False

 

            string m1 = "tg903eiotf38";
            string m2 = "tg903eiotf38";

            Console.WriteLine(m1 == m2);//字符串值比较True
            Console.WriteLine(m1.Equals(m2));//字符串值比较True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//字符串引用优化比较True

 

现有一class:

   public class Student
    {
        public long Id { get; set; }

        public string Name { get; set; }
    }

 

       Student m1 = new Student()
            {
                Id = 34,
                Name = "朝野布告",
            };
            Student m2 = new Student()
            {
                Id = 34,
                Name = "朝野布告",
            };

            Console.WriteLine(m1 == m2);//False
            Console.WriteLine(m1.Equals(m2));//False
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//False

 

            Student m1 = new Student()
            {
                Id = 34,
                Name = "朝野布告",
            };
            Student m2 = m1;

            Console.WriteLine(m1 == m2);//True
            Console.WriteLine(m1.Equals(m2));//True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//True

 

            Student m1 = new Student()
            {
                Id = 34,
                Name = "朝野布告",
            };
            Student m2 = m1;

            m1.Name = "飓风";

            Console.WriteLine(m1 == m2);//True
            Console.WriteLine(m1.Equals(m2));//True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//True
            Console.WriteLine(m1.Name);//飓风
            Console.WriteLine(m2.Name);//飓风

 

            object m1 = new Student()
            {
                Id = 34,
                Name = "朝野布告",
            };
            object m2 = m1;
            
            Console.WriteLine(m1 == m2);//True
            Console.WriteLine(m1.Equals(m2));//True
            Console.WriteLine(System.Object.ReferenceEquals(m1, m2));//True

 

C#对象比较的总结

原文:http://www.cnblogs.com/huangsheng/p/6490578.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!