سؤال

هل هناك أي طريقة (الاستفادة من الانعكاس آمل) أن أقوم بإجراء كائن مثيل جنبا إلى جنب مع جميع خصائصها العامةب لدي فئة من CodeBase لشخص آخر (بدون مصدر متاح) أحتاج إلى الاستفادة، وأريد بشكل أساسي إلقاء استثناء إذا حاول أي قطعة من التعليمات البرمجية في أي مكان استدعاء مجموعة عامة داخل هذه الفئة بعد إنه تم إنشاء مثيل.

ملاحظة: لا أريد إنشاء كائن Wrapper حول الفصل من أجل تنفيذ هذا. أنا كسول.

هل كانت مفيدة؟

المحلول

لا لا يوجد ذلك عن طريق الانعكاس. لا يمكن تغيير تعريف التعريفات في وقت التشغيل عن طريق الانعكاس وبالتالي لا يمكن استخدامها كجهاز لجعل نوع غير قابل للتغيير.

ولكن يمكن استخدام الانعكاس لانتهاك إمكانات نوع. على سبيل المثال، من الممكن تعيين الخصائص التي تحمل علامة Readonly عبر الانعكاس لفترة طويلة بعد تشغيل المنشئ.

نصائح أخرى

أجد صعوبة في الاعتقاد بأنك على استعداد لتقديم رمز الانعكاس للقيام بشيء يمكن حله ببساطة مع فئة مجمع.

الاستثمار الصغير في وقتك الآن سيوفر لك الكثير من الوقت المؤلم في وقت لاحق عند فاحصة رمز الانعكاس أو يتطلب التعديل. فئة المجمع بسيطة وسهلة التنفيذ، هي آمنة من النوع، وسوف معنى للمطورين الآخرين على الطريق. لا تدع الكسل يمليون الخيارات المعمارية الخاصة بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top