== অপারেটর রেফারেন্স আইডেন্টিটি চেক করে (রেফারেন্স টাইপের জন্য)। Equals() মেথড কন্টেন্ট চেক করে।
উদাহরণ ১: একই রেফারেন্স
string str = "hello"; string str2 = str; Console.WriteLine(str == str2); // True (রেফারেন্স একই) Console.WriteLine(str.Equals(str2)); // True (কন্টেন্ট একই)
উদাহরণ ২: আলাদা অবজেক্ট, একই কন্টেন্ট
object str = "hello";
char[] values = {'h','e','l','l','o'};
object str2 = new string(values);
Console.WriteLine(str == str2); // False (রেফারেন্স আলাদা)
Console.WriteLine(str.Equals(str2)); // True (কন্টেন্ট একই)
সারাংশ
- ভ্যালু টাইপ (int, struct): == এবং Equals() একই কাজ করে (ভ্যালু চেক)
- রেফারেন্স টাইপ (string, class): == রেফারেন্স চেক করে, Equals() কন্টেন্ট চেক করতে ওভাররাইড করা থাকে
- স্ট্রিং-এ Equals() কন্টেন্ট তুলনা করে, == ও কন্টেন্ট তুলনা করে (অপারেটর ওভারলোড)