.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 тощо), рекомендується використовувати [асемблер: CLSCompliant(true)]Вкажіть, що ваша бібліотека відповідає вимогам CLS。
Ресурси:
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.
Простими словами:
Ви можете їсти пилаф руками, можна їсти ложкою — проблем немає, однак їсти руками не відповідає гігієнічним нормам чи нормам. CLS — це специфікація протоколу, хоча асемблер не повідомляє про помилки і не впливає на нормальне використання, але деякі типи та параметри коду, який ви розробляєте, не відповідають стандартам.
Використовуйте CLS
У AssemblyInfo.cs файлі додайте наступний код:
Він буде застосовуватися до всього комплексу.
Якщо ви не встановите цю функцію, ви можете отримати таку помилку при додаванні цієї функції до об'єкта:
Оскільки збірки не мають функцій CLSCompliant, "A.Test" не потребує ознак CLSCompliant Тестовий код виглядає так:
Тип «A.Test» не відповідає вимогам CLS
Ви можете побачити два попередження, натисніть на попереджувальний пункт, щоб перейти до конкретного номера рядка, що вказує, що наш рядок коду не відповідає специфікації CLS, і тоді можете виправити це самостійно.
Якщо лінія не відповідає специфікації CLS, але модифікація вплине на правильну роботу програми, але ви не хочете, щоб VS вас попереджали, ви можете додати такі характеристики до поля або класу:
Таким чином, це попередження не буде видано.
(Кінець)
|