public override bool Equals(object obj) { BitArray64 arr = obj as BitArray64; if (arr.Lenght != this.Lenght) { return(false); } for (int i = 0; i < arr.Lenght; i++) { if (arr[i] != this[i]) { return(false); } } return(true); }
static void Main() { BitArray64 myArr = new BitArray64(5); BitArray64 myArr2 = new BitArray64(5); DateTime date = DateTime.Now; for (int i = 0; i < myArr.Lenght; i++) { myArr[i] = (ulong)(Math.Pow(date.Second, i) + i); //.... myArr2[i] = myArr[i]; } Console.WriteLine("Array #1: {0}", myArr); Console.WriteLine("Hash code of array: {0}", myArr.GetHashCode()); Console.WriteLine("Array #2: {0}", myArr2); Console.WriteLine("Are they equal? A: {0}", myArr.Equals(myArr2)); for (int i = 0; i < myArr2.Lenght; i++) { myArr2[i] += 1; } Console.WriteLine("After change values. Are they equal {0}", myArr == myArr2); Console.WriteLine(); // results depends on current second from system Datetime :D }