Pergunta

Vamos dizer que eu estou escrevendo uma biblioteca em C # e eu não sei quem vai consumi-lo.

A interface pública da biblioteca tem alguns tipos não assinados - uint, ushort. Aparentemente, esses tipos não são compatível com CLS e, teoricamente falando, pode haver idiomas que não será capaz de consumi-los.

Existem em línguas realidade como essa?

Foi útil?

Solução

Eu acredito na versão original do VB.NET, tipos não assinados eram utilizáveis, mas não havia suporte para eles construído dentro da linguagem. Este tem sido abordado em versões posteriores, é claro.

Além disso, eu suspeito que a agora extinta J # não tem suporte para tipos sem sinal (dado que Java não tem nenhuma).

Outras dicas

.NET compatibilidade e conformidade CLS são duas coisas diferentes. Qualquer coisa que possa trabalhar de alguma forma com o .NET framework pode ser dito para ser compatível com ele. compatibilidade com CLS é mais rigorosa. Ele fornece um conjunto de regras para implementadores de linguagem e designers de biblioteca de seguir de modo a criar um ecossistema de línguas e bibliotecas mutuamente compatíveis.

O ponto inteiro de uma coisa como o CLS é permitir que você para evitar ter que pesquisar cada exemplo de um idioma e descobrir como apoiá-los todos. Se você quiser fazer isso, você pode, mas a alternativa é cumprir com o CLS e, portanto, saber que você será compatível com qualquer outra coisa (do passado presente ou futuro) que também em conformidade com o CLS.

Se não houver um hoje, pode haver um amanhã.

Visual Basic ..?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top