سؤال

الآن، كمبرمج C #، وأنا أعلم أن الجنراء رائعون. ومع ذلك، عند dabbling في بعض vb.net، اكتشفت أن ما يلي لا يسبب خطأ مترجم:

Dim instance As List(Of Integer)
instance.Add(True)

لماذا هذا؟ أعلم أنك لست مطالبا بالإدلاء في VB.NET، لكنني اعتقدت أن هذا يقتل السبب الرئيسي لاستخدام السلامة بين الأجنبي.

تعديل: ليس لدي خيار صارم، لأن هذا لم يكن تمرينا برمجة حقيقية، فقط لي إلقاء نظرة على vb.net من الناحية النظرية. إنه سؤال نظري، حيث كنت أتوقع أن يتسبب في خطأ مترجم حتى مع خيار صارم، تماما كميزة أنواع عامة.

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

المحلول

بدون Option Strict On, ، vb.net سعيد لتحويل ضمنيا Boolean ل Integer. وبعد أوصي بشدة (خاصة قادمة من خلفية C #) التي تقوم بها Option Strict On الافتراضي لعمل vb.net.

يمكنك القيام بذلك في Visual Studio في Tools | Options | Projects and Solutions | VB Defaults.

تعديل لمزيد من المعلومات على موقف VB (Classic) "مريح" من نوع التحويل، جوجل "إكراك نوع الشر". كان لهؤلاء منا الذين سعوا إلى عمل جيد في VB (الكلاسيكية) يتصارعون إلى تصارع هذا شيطان لفترة ...

نصائح أخرى

هل لديك الخيار صارمة تشغيل؟

vb.net يحول في موقع استدعاء الوظيفة. لا تزال قائمة (عدد صحيح) تخزين عدد صحيح (-1، وهي القيمة الصحيحة الصادرة)

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