Существуют ли языки, совместимые с .NET, которые не поддерживают неподписанные типы? - PullRequest
5 голосов
/ 13 декабря 2008

Допустим, я пишу библиотеку на C # и не знаю, кто ее будет использовать.

Публичный интерфейс библиотеки имеет несколько неподписанных типов - uint, ushort. По-видимому, эти типы не соответствуют CLS, и, теоретически, могут существовать языки, которые не смогут их использовать.

Есть ли в реальности такие языки?

Ответы [ 4 ]

5 голосов
/ 13 декабря 2008

Я полагаю, что в оригинальной версии VB.NET неподписанные типы можно было использовать, но они не были встроены в язык. Конечно, это было исправлено в более поздних версиях.

Кроме того, я подозреваю, что ныне несуществующий J # не поддерживает неподписанные типы (учитывая, что в Java их нет).

5 голосов
/ 13 декабря 2008

.NET-совместимость и CLS-совместимость - это две разные вещи. Можно сказать, что все, что может каким-либо образом работать с платформой .NET, совместимо с ней. Соответствие CLS более строгое. Он предоставляет набор правил, которым должны следовать разработчики языков и разработчики библиотек, чтобы создать экосистему взаимно совместимых языков и библиотек.

Весь смысл таких вещей, как CLS, состоит в том, чтобы позволить вам избежать необходимости исследовать каждый пример языка и выяснить, как его поддерживать. Если вы хотите это сделать, вы можете, но альтернативой является соблюдение CLS и, следовательно, знание того, что вы будете совместимы со всем остальным (из прошлого, настоящего или будущего), которое также соответствует CLS.

1 голос
/ 14 декабря 2008

Если сегодня нет ни одного, завтра может быть один.

0 голосов
/ 13 декабря 2008

Visual Basic ..?

...