مشغل متساوٍ (==) في C#: متى يفشل وكيفية التعامل مع
]] == عامل التشغيل في
C# مريح للغاية لمقارنة مساواة كائنين. على الرغم من أن المشغل ==
يعتبر عمومًا العمل مع جميع الأنواع ، إلا أنه غير قابل للاستخدام في بعض الحالات.
مثال على ذلك لمقارنة الأنواع العامة غير المقيدة. لا يمكن تجميع مقتطف الكود المقدم في السؤال إذا لم تكن هناك قيود على t ، فقد يكون النوع نوعًا من القيمة ، وفي هذه الحالة لا يمكن تطبيق
== المشغل مباشرة.
int و
تعويم ] تعويم
يستخدمون طريقة متساوية
لمقارنة القيمة. من ناحية أخرى ، فإن أنواع المرجع مثل string
لها مشغلات محددة مسبقًا ==
للتحقق من مراجع الكائن.
لذلك ، دون تحديد قيود على T ، لا يمكن للمترجم تحديد ما إذا كان سيتم استخدام
المشغل محدد مسبقًا لنوع المرجع ، أو طريقة متساوية
لنوع القيمة. لحل هذا ، يجب أن تكون T مقيدة بنوع مرجعي.
الآن ، افترض أنك تشير إلى النوع كمعلمة نوع. في هذه الحالة ، سيقارن المشغل
باستخدام المراجع المحددة مسبقًا ، بدلاً من أي نسخة محملة من المشغل. وذلك لأن مقارنات الاقتباس المحددة مسبقًا تعتبر أكثر أساسية وموثوقية.
إذا كان لديك معلومات غير كافية حول معلمات النوع ، فيمكنك استخدام واجهة
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3