Eng.Amal نشر 3 نوفمبر 2015 أرسل تقرير مشاركة نشر 3 نوفمبر 2015 هل هناك فرق بين وضع == أو .Equals() أثناء المقارنة؟ إن كان هناك فرق أرجو الشرح مع مثال اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Lujain نشر 5 نوفمبر 2015 أرسل تقرير مشاركة نشر 5 نوفمبر 2015 عادةً ما تُستخدم العملية '==' في التعبيرات 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 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Eng.Amal
هل هناك فرق بين وضع == أو .Equals() أثناء المقارنة؟ إن كان هناك فرق أرجو الشرح مع مثال
رابط هذا التعليق
شارك على الشبكات الإجتماعية
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.