هل تعاني Clscompliant سمة من أجل الإصدارات القديمة من لغات .NET؟
-
12-09-2019 - |
سؤال
على سبيل المثال، قرأت أن Visual Basic .NET لم يكن لدى Visual Basic. NET Overator Overloads من قبل، لذلك لن تتمكن من استخدام أنواع المشغلين الذين مثقلون، إذا لم يتم توفيرهم كطرق طبيعية أيضا (إضافة، بدلا من المشغل +).
الآن أن VB لديه هذه الميزة، هل ستعمل Clscompliant سمة الرعاية إذا كان لديك طرق ثابتة طبيعية مثل إضافة، طرح بدلا من التحميل الزائد للمشغل فقط؟
لقد كتبت بعض الأنواع دون الأساليب الساكنة اللفظية، ولكن فقط الحمل الزائد للمشغل، ومترجم C # لم يهتم. إذا كانت مشكلة، فسوف يحذرني، أليس كذلك؟
المحلول
الامتثال CLS لا علاقة له اكبر سنا اي شى - إنها ببساطة المجموعة الأساسية من الوظائف التي يجب عليك توقع لغة تعسفية للتعامل مع (عند استهلاك الكود الخاص بك). على سبيل المثال، ذلك ليس كذلك معقول أن نفترض أن اللغة هي حساسة لحالة الأحرف، لذلك الأعضاء "فو" و "فو"، في حين أن القانونية في C #، ليست متوافقة CLS.
سوف يحذرك المحول البرمجي إذا طلبت ذلك؛ يضيف [CLSCompliant(true)]
إلى نوع / تجميع / إلخ وسوف تحقق مطالبتك.
إذا كنت ISV، فقد ترغب في التفكير في الامتثال CLS. إذا كنت تكتب رمز فقط لنفسك وفريق، فربما لا تحتاج إلى النفقات العامة.