আমি ইন্টারফেস আইকোয়ালিটি কম্পিউটারের গেটহ্যাশকোড পদ্ধতির ভূমিকা বোঝার চেষ্টা করছি।
নিম্নলিখিত উদাহরণটি এমএসডিএন থেকে নেওয়া:
using System;
using System.Collections.Generic;
class Example {
static void Main() {
try {
BoxEqualityComparer boxEqC = new BoxEqualityComparer();
Dictionary<Box, String> boxes = new Dictionary<Box,
string>(boxEqC);
Box redBox = new Box(4, 3, 4);
Box blueBox = new Box(4, 3, 4);
boxes.Add(redBox, "red");
boxes.Add(blueBox, "blue");
Console.WriteLine(redBox.GetHashCode());
Console.WriteLine(blueBox.GetHashCode());
}
catch (ArgumentException argEx) {
Console.WriteLine(argEx.Message);
}
}
}
public class Box {
public Box(int h, int l, int w) {
this.Height = h;
this.Length = l;
this.Width = w;
}
public int Height { get; set; }
public int Length { get; set; }
public int Width { get; set; }
}
class BoxEqualityComparer : IEqualityComparer<Box> {
public bool Equals(Box b1, Box b2) {
if (b1.Height == b2.Height & b1.Length == b2.Length
& b1.Width == b2.Width) {
return true;
}
else {
return false;
}
}
public int GetHashCode(Box bx) {
int hCode = bx.Height ^ bx.Length ^ bx.Width;
return hCode.GetHashCode();
}
}
দুটি বক্স অবজেক্টের তুলনায় সমান পদ্ধতির প্রয়োগটি কি পর্যাপ্ত হওয়া উচিত নয়? এটিই আমরা ফ্রেমওয়ার্কটি অবজেক্টগুলির তুলনা করতে ব্যবহৃত নিয়মটি বলি। গেটহ্যাশকোডের প্রয়োজনীয়তা কেন?
ধন্যবাদ।
লুসিয়ান