ما هي النتائج المترتبة على كود NON-CLS المتوافقة في. NET؟
-
22-07-2019 - |
سؤال
ولدي بضعة تحذيرات مترجم المزعجة لأحد التطبيقات التي سبق تصديرها من VB6 بعض الوقت بشأن العودة CLS الامتثال بما في ذلك:
Name '_AnIdentifier' is not CLS-Compliant.
Type of parameter 'myType' is not CLS-Compliant.
وعلى الرغم من ذلك، يبدو بلدي التطبيق لأداء ما يرام من العملاء المدارة COM و. لقد رأيت العديد من المقالات التي تصف ما يجب القيام به لجعل رمز CLS المتوافقة وأنا على الأرجح سوف نمضي قدما ونفعل ذلك على أي حال للتخلص من التحذيرات المزعجة، ولكن أنا الغريب ما العوائق من التعليمات البرمجية غير CLS متوافقة هي في عملي شروط؟ ما هي القيود غير هذا imposting بأنني لم تكتشف حتى الآن؟
المحلول
وفي الأساس، قد لا تكون صفك للوصول (أو قد تعمل بشكل غريب، مثل أرقام إيجابية كبيرة يجري التعامل معها على أنها سلبية)، عندما تستخدم مع بعض اللغات .NET. لا أستطيع أن أقول ما اللغات التي قد يكون.
وعلى سبيل المثال، لا أعتقد أن هناك حاجة إلى لغة إلى التعرف على identifer التي تبدأ مع تسطير. C # يسمح لها، لذلك كنت آمنة هناك، ولكن بالنسبة للغات الأخرى، "_AnIdentifier" قد تكون خفية، أو يكون له اسم ولدت النظام.
نصائح أخرى
ولقد واجهت مشاكل مع أدوات التشويش توليد كود غموض غير صحيحة عند التعليمات البرمجية التي يتم لا غموض CLS متوافقة.