Система общих типов (Common Language Specification) — это часть Common Language Infrastructure (CLI), которая определяет минимальный набор языковых конструкций и правил, необходимых для обеспечения совместимости различных языков программирования в .NET.
CLS разработан для того, чтобы код, написанный на одном языке (например, C#), мог быть использован на другом (например, VB.NET или F#) без проблем с совместимостью.
Ключевые аспекты CLS
- Совместимость
CLS обеспечивает возможность вызова кода, написанного на одном языке, из другого языка. Например, если у вас есть библиотека на C#, то другие языки, такие как VB.NET или F#, смогут ее использовать. - Ограничения
CLS накладывает определенные ограничения на код, чтобы он соответствовал спецификации. Например:- Имена не должны различаться только регистром (в C#
MyMethod
иmymethod
— разные методы, а в VB.NET — нет). - Публичные члены не должны использовать не CLS-совместимые типы (например,
unsigned int
не CLS-совместим).
- Имена не должны различаться только регистром (в C#
- CLS-совместимость
Чтобы гарантировать, что ваш код соответствует CLS, в C# можно использовать атрибут[CLSCompliant(true)]
CLS vs CTS vs CLR
- CLS (Common Language Specification) — набор правил для совместимости языков .NET.
- CTS (Common Type System) — общая система типов, которая определяет, какие типы данных поддерживаются в .NET.
- CLR (Common Language Runtime) — среда выполнения .NET, управляющая памятью, безопасностью и выполнением кода.