[c#] لماذا لا يتم إغلاق الصفوف افتراضيًا؟



Answers

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

على ما يستحق ، هذا ليس الخطأ الوحيد على غرار كونها قريبة جدا من جاوة: شخصيا أنا بدلا يساوي و GetHashCode لم تكن في الكائن ، وأنك تحتاج إلى حالات مراقبة محددة للتثبيت أيضا ...

Question

كنت أتساءل فقط ، حيث أن وجود الكلمة الرئيسية المختومة يشير إلى أن قرار المؤلف هو ما إذا كان يُسمح للطبقات الأخرى بالوراثة منه ، فلماذا لا تكون الصفوف مختومة بشكل افتراضي ، مع وجود بعض الكلمات الأساسية لتمييزها صراحة باعتبارها قابلة للتوسعة؟

أعلم أنه مختلف إلى حد ما ، لكن معدِّلات الوصول تعمل بهذه الطريقة. مع الافتراضي يتم تقييد الوصول وكامل منح فقط مع إدراج كلمة رئيسية.

هناك فرصة كبيرة بأنني لم أفكر في ذلك من خلال ذلك بشكل صحيح ، على الرغم من ذلك ، لذا يرجى أن تكون إنسانيا!




80 ٪ من ميزات Word تذهب غير المستخدمة. 80 ٪ من الطبقات لا تحصل على الموروث منها. في كلتا الحالتين ، من حين لآخر ، يأتي شخص ما ويريد استخدام أو إعادة استخدام ميزة. لماذا يجب على المصمم الأصلي حظر إعادة الاستخدام؟ دع المستفيد يقرر ما يريد إعادة استخدامه.




تمنع الطبقات المختومة الميراث ، ومن ثم فهي بمثابة تخليق OO. انظر هذا التشدق لمزيد من التفاصيل ؛-)




ربما يمكنك أن تجعل العديد من الحجج المؤيدة للاختصار بالتقصير كما يمكن ضدها. إذا كان العكس ، فسيقوم شخص ما بنشر السؤال المعاكس.






Links