هل من الممكن تجاوز وظيفة المستوى الأعلى في دارت؟

StackOverflow https://stackoverflow.com//questions/21001263

  •  20-12-2019
  •  | 
  •  

سؤال

دعونا أقول لدي وظيفة المستوى الأعلى:

giveacodicetagpre.

هل من الممكن تجاوز هذه الوظيفة في دارت؟

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

المحلول

إجابة بسيطة: لا، لا يمكن تصنيف المستوى الأعلى، لذلك تجاوز غير ممكن.

إجابة أطول: يمكنك "overhshadow" لهم، ولكن اعتمادا على حالة استخدامك، قد لا يكون هذا ما تريد.

إذا كنت ترغب في تغيير سلوك طريقة المستوى الأعلى لمكتبة الطرف الثالث التي تسمى المكتبة نفسها، فهذا غير ممكن (على الأقل، لا أعرف أي طريقة للقيام بذلك).

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

giveacodicetagpre.

نصائح أخرى

لست متأكدا مما إذا كنت تستطيع تجاوز الوظائف، ولكن لا يمكنك التفاف هذا في فئة واستخدام الميراث لتجاوز الطريقة؟

giveacodicetagpre.

يبدو أنه مستحيل.

جرب هذا on try.dartlang.org:

giveacodicetagpre.

وانظر أن تحصل على خطأ في تجميع ("تعريف مكرر")؛

إذا كنا نتحدث عن http://en.wikipedia.org/wiki/method_overriding :

هل هذا صحيح؟أشعر بالجراب الغريب هذا بحيث ببساطة وبالتأكيد مثل هؤلاء هنا أحترم الإجابة على أي.

giveacodicetagpre.

أعتقد أنه يمكنك الآن القيام بذلك باستخدام تنفيذ مخصصة.

يمكن استخدام هذا لإعادة تشغيل الأمر الطباعة في غضون اختبار.يجب استدعاء جميع التعليمات البرمجية التي يجب إعادة توجيهها من داخل مكالمة رينزون ().

شاهد: https:// github.com / رفرفة / رفرفة / بلوب / سيد / حزم / رفرفة / اختبار / مؤسسة / Capture_output.dart

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