اذهب إلى المحتوى
  • 0

ما هو الفرق بين == و .Equals() في C#؟

Eng.Amal

السؤال

Recommended Posts

  • 0

عادةً ما تُستخدم العملية '==' في التعبيرات expressions من النوع Object حيث أنها تقارن بين غرضين 2 Objects من ناحية قيمة المؤشر لكل منهما Reference:

Sysytem.Object.ReferenceEquals

بينما Equals هي عبارة عن دالة (إصدار معاد تعريفة للعملية '==') overriden تستخدم عادةً للمقارنات من نوع string، أي مقارنة محتوى الغرض object.

لنقم بعمل مقارنتين مرة باستخدام العملية '==' مرة أخرى باستخدام الدالة .Equals وطباعة النتيجة:

static void Main(string[] args)
        {
            char[] chars = { 'a', 'b', 'c'};
            Object s1 = new String(chars);
            Object s2 = new String(chars);

     

            Console.Write("s1.equals(s2)  :" + s1.Equals(s2) + "  s1==s2   :");
            Console.WriteLine(s1 == s2);

            String s3 = "abc";
            String s4 = "abc";

            Console.Write("s3.equals(s4)  :" + s1.Equals(s2) + "  s3==s4   :");
            Console.WriteLine(s3 == s4);


            Console.ReadLine();
        }

قمت بإنشاء 2 Objects من نوع String ومقارنتهما مرة باستخدام '=='ومرة باستخدام .Equals()، عند طباعة نتيجة مقارنة الغرضين باستخدام '==' تتم المقارنة بحسب الـreference أي بحسب القيمة التي تستخدم للتأشير على قيمة محتوى الObject، أي سيتم طباعة قيمة False لأن قيمة مؤشر الغرض الأول لا تساوي قيمة مؤشر الغرض الثاني، أما باستخدام الدالة .Equals فسيتم طباعة قيمة True لان محتوى الغرضين متساوي وهو abc

equals_operator.thumb.png.1b296a9e1a3c27

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...