سؤال

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

أي واحد مما يلي يصف سلامة النوع؟

  1. بناء برمجة يستخدم لضمان أمان أنواع المرجعة والقيمة في CLR
  2. الحماية من تسرب الذاكرة نتيجة لإعلام الوصول غير المدمن
  3. توفر ميزة CLR الخاصة التي توفر التأكيدات التي قد لا تصل إليها الأنواع إلى الذاكرة خارج AppDomain الخاصة بهم
  4. آلية تم إنشاؤها لحماية الجمعيات وأنواعها عن طريق استخدام مفاتيح قوية المسماة
  5. يتم دائما الوصول إلى مفهوم التعامل مع التأكيدات التي تخصص الكائنات بطرق متوافقة

أعتقد أنه 1 أو 5، لكنهم يبدو غريبا بالنسبة لي على أي حال :(

ما رأيك؟

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

المحلول

في الواقع أعتقد أنه من الخيار 5 لأن السلامة النوعية لا علاقة لها بالأمان.

نصائح أخرى

نوع السلامة هي ميزة لغة مصممة لجعل جيدة على [روبن ميلنر] شعار الشهير [1] حول برمجة ML: لا يمكن أن تسوء البرامج المكتوبة جيدا.

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

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

وفقا لارتباط MSDN المقدم أدناه،http://msdn.microsoft.com/en-us/library/hbzz1a9a.aspx.

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

الاختيار 5 مفهوم التعامل مع التأكيدات التي يتم تخصيص الكائنات التي يتم تخصيصها دائما بطرق متوافقة

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

ستتأكد من نوع اللغات الآمنة (في وقت الترجمة) التي لا تتصل بطرق غير متوافقة على نوع، على سبيل المثال الطول () على نوع INT. اللغات غير الآمنة من النوع سوف تكتشفها في وقت التشغيل. لذلك، اختيار 5.

كما قال آخر، اختيار 5 ...

بشكل عام - ل .NET، تحقق من نظام النوع المشترك (CTS) الذي يتيح الاشياء اللغوية والسلامة النوعية.

الدفع: http://en.wikipedia.org/wiki/type_safety. ...

إنه الخيار # 5. السلامة النوع هي ضمان، وليس شيئا ملموسا. من الممكن ل. كود. ليس كن نوعا آمنا ... قل في الحالة التي تستخدمها التجميع رمز غير آمن لأداء المكالمات غير المدارة (Pinvoke). أثناء JIT، يتم تنفيذ عملية تتحقق من الأنواع التي يجريها، في الواقع، اكتب آمن. أنا لست على دراية بأي تفاصيل حول هذه العملية، ولكن إذا تم تمرير نوع الجهوف، فهذا ينظر بشكل غير صحيح.

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