Существуют ли совместимые с .NET языки, которые не поддерживают беззнаковые типы?
-
21-08-2019 - |
Вопрос
Допустим, я пишу библиотеку на C# и не знаю, кто будет ее использовать.
Публичный интерфейс библиотеки имеет несколько беззнаковых типов — uint, ushort.Очевидно, эти типы не совместимы с CLS, и теоретически могут существовать языки, которые не смогут их использовать.
Существуют ли на самом деле такие языки?
Решение
Я считаю, что в исходной версии VB.NET беззнаковые типы можно было использовать, но их поддержка не была встроена в язык.Конечно, это было исправлено в более поздних версиях.
Кроме того, я подозреваю, что ныне несуществующий J# не поддерживает беззнаковые типы (учитывая, что в Java их нет).
Другие советы
Совместимость .NET и соответствие CLS — это две разные вещи.Можно сказать, что все, что каким-то образом работает с инфраструктурой .NET, совместимо с ней.Соответствие CLS является более строгим.Он предоставляет набор правил, которым должны следовать разработчики языков и дизайнеры библиотек, чтобы создать экосистему взаимно совместимых языков и библиотек.
Вся суть такой вещи, как CLS, состоит в том, чтобы позволить вам избежать необходимости исследовать каждый пример языка и выяснить, как их все поддерживать.Если вы хотите это сделать, вы можете это сделать, но альтернативой является соблюдение CLS и, следовательно, уверенность в том, что вы будете совместимы со всем остальным (из прошлого, настоящего или будущего), которое также соответствует CLS.
Если сегодня его нет, завтра он может появиться.
Visual Basic..?