C# == 和 Equals 区别

简介: C# == 和 Equals 区别
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var s1 = new string("yyy");
            var s2 = new string("yyy");

            var s3 = new StringBuilder("yyy");
            var s4 = new StringBuilder("yyy");
            Console.WriteLine("object.ReferenceEquals(s1, s2): " + object.Equals(s1, s2));
            Console.WriteLine("object.ReferenceEquals(s3, s4): " + object.Equals(s3, s4));
            Console.WriteLine("s1 == s2: " + (s1.GetHashCode() + "  " + s2.GetHashCode()));
            Console.WriteLine("s1 == s2: " + (s1.GetHashCode() + " "  + s2.GetHashCode()) + " " + s1.Equals(s2));
            Console.WriteLine("s3 == s4: " + (s3.GetHashCode() + " " + s4.GetHashCode())  + " " + s3.Equals(s4));

            AutoResetEvent autoResetEvent = new AutoResetEvent(false);
            Console.ReadKey();
        }
    }
目录
相关文章
|
5月前
|
C#
C#学习相关系列之yield和return的区别
C#学习相关系列之yield和return的区别
|
5月前
|
C#
C#中IsNullOrEmpty和IsNullOrWhiteSpace的区别?
C#中IsNullOrEmpty和IsNullOrWhiteSpace的区别?
|
5月前
|
C#
C#系列之ref和out的区别
C#系列之ref和out的区别
|
4月前
|
存储 安全 Java
程序与技术分享:C#值类型和引用类型的区别
程序与技术分享:C#值类型和引用类型的区别
33 0
|
1月前
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
62 5
|
2月前
|
C#
C#中的overload,overwrite,override的语义区别
以上概念是面向对象编程中实现多态性和继承的重要基石。理解它们之间的区别对于编写清晰、可维护的代码至关重要。
72 7
|
5月前
|
C#
c#一文读懂continue、return、break区别
c#一文读懂continue、return、break区别
41 0
|
11月前
|
C# 开发者
C#扩展方法和工具类的区别
扩展方法和工具类的主要区别在于它们的作用。扩展方法旨在扩展现有的类,而工具类旨在提供一组通用且可靠的方法来执行某些任务。当需要扩展现有的类时,使用扩展方法;当需要实用函数来执行通用任务时,使用工具类。
68 0
|
10月前
|
Java C#
C# String与StringBuilder的区别和使用方法
C# String与StringBuilder的区别和使用方法
|
10月前
|
C# 数据库
C# 四种循环体的使用与区别
C# 四种循环体的使用与区别