.NET е отделен език. Това означава, че като разработчик можете да разработвате на един от многото езици за .NET (например C#, C++/CLI, Eiffel, F#, IronPython, IronRuby, PowerBuilder, Visual Basic, Visual COBOL и Windows PowerShell). Достъп до типовете и членовете на библиотеките, разработени за .NET, без да се налага да знаете езика, на който са написани първоначално, или да следвате каквито и да било конвенции на оригиналния език. Ако сте разработчик на компоненти, вашите компоненти могат да бъдат достъпени от всяко .NET приложение, независимо от езика.
Ако вашият компонент отговаря на спецификацията на общия език, е гарантирано, че е съвместим с CLS и достъпен чрез код в асемблер, написан на всеки програмен език, който поддържа CLS. Можете да определите дали вашите компоненти отговарят на спецификацията на общия език по време на компилиране, като приложите функцията CLSCompliantAttribute към изходния код.
Спецификацията на общия език разглежда всяко правило за съответствие с CLS, тъй като се отнася за потребители (разработчици, които програмно достъпват компоненти, съвместими с CLS), рамки (разработчици, които използват компилатори за създаване на библиотеки, съвместими с CLS), и екстензори (разработчици, които създават инструменти като компилатори на езици или анализатори на код, създаващи компоненти, съвместими с CLS). Програмата не проверява дали кодът отговаря на изискванията на CLS по подразбиране при компилиране, но ако вашата програма може да бъде публична (codeshare, Nuget release и др.), препоръчва се да се използва [assembly: CLSCompliant(true)]Посочете, че библиотеката ви е съвместима с CLS。
Ресурси:
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
На прост език:
Можеш да ядеш пилаф с ръце, можеш да ядеш с лъжица, няма проблем, но храненето с ръце не отговаря на хигиенните стандарти или норми. CLS е протоколна спецификация, въпреки че асемблерът няма да докладва грешки и няма да повлияе на нормалната употреба, но някои типове и параметри на кода, който разработвате, не отговарят на стандартите.
Използвайте CLS
В AssemblyInfo.cs файла добавете следния код:
Той ще се прилага върху цялата сглобка.
Ако не зададете тази функция, може да получите следната грешка при добавяне на тази функция към обект:
Тъй като асемблерите нямат CLSCompliant характеристики, "A.Test" не изисква CLSCompliant характеристики Тестовият код е следният, след което се компилира отново:
Типът "A.Test" не отговаря на CLS
Можете да видите две предупреждения, кликнете върху предупредителния елемент, за да преминете към конкретния номер на ред, което показва, че нашият ред не отговаря на спецификацията на CLS, и след това можете сами да го коригирате.
Ако линията не отговаря на спецификацията на CLS, но модификацията ще повлияе на правилната работа на програмата, но не искате VS да ви предупреждава, можете да добавите следните характеристики към полето или класа:
По този начин това предупреждение няма да бъде издадено.
(Край)
|