سؤال

وسؤال آخر الترجمة، وهذا قد يكون أكثر النظري، ولكن أنا غريبة بالنسبة لاختيار التصميم. SFNQ:

وماذا C # لا تسمح السيطرة على التحكم في الوصول إلى الأساليب في واجهات مثل جافا يفعل؟ على سبيل المثال، في C # واجهة:

   public void Visit(Axiom axiom);

وشكرا لكم.

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

المحلول

في كل من C # وجافا، وجميع الطرق في واجهة علنية.

في جاوة، ولا يسمح للالكلمة العامة، من المحتمل أن انقاذ على قواعد التوزيع. في C #، اعتبرت الكلمة العامة زائدة عن الحاجة وأقيل من تعريفات الواجهة تماما.

نصائح أخرى

في C #، وصافي بشكل عام، كل الأساليب على واجهة علنية افتراضيا. لا توجد وسيلة لتقييد وصولهم.

والنظر في بديل، ما من شأنه أن يعني أن يكون عضوا المحمية على واجهة؟ كيف يمكنك إنشاء قواعد الوصول إلى السماح أو عدم السماح لاحد المتصلين من الوصول اجهة لطريقة معينة؟ (أقصد المحمية في C # شعور، وليس جافا واحد).

وحتى أفضل، ما يعني القطاع الخاص؟

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

واجهة هو العقد الذي ينص على أنه سوف يوفر كل من functionlity المحددة في تعريف واجهة. إذا سمح لك أن يكون أعضاء الخاص في واجهة لن يكون لكم فضح هذه الوظيفة (وبالتالي هل تنتهك العقد).

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