Advertisement

深入研究C#中的对象相等性及其相关方法和接口:==、equals、IEquatable<T>、SequenceEqual、IEqualityComparer<T>

阅读量:

坦白来说,我查阅了一些相关资料以及msdn文档,但仍然感到有些困惑。
在此记录下一些个人的思考过程。

众所周知,c#语言中存在值类型与引用类型的区分。
==运算符本质上是equals方法的重载形式,针对值类型而言,其比较的是具体的数值内容;而对于引用类型,则用于比较对象在内存中的存储地址。

复制代码
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 比较相等
    {
    class Program
    {
        static void Main(string[] args)
        {
            int[] a1 = { 2, 4, 6, 8 };
            int[] a2 = { 2, 4, 6, 8 };
          
            if ( a1.Equals(a2)) //a1.SequenceEqual(a2))
                Console.Write

全部评论 (0)

还没有任何评论哟~