Compartilhar via


5 Conformidade

A conformidade é de interesse para os seguintes públicos:

  • Aqueles que projetam, implementam ou mantêm implementações em C#.
  • Entidades governamentais ou comerciais que desejam adquirir implementações em C#.
  • Organizações de teste que desejam fornecer um conjunto de testes de conformidade com C#.
  • Programadores que desejam portar o código de uma implementação C# para outra.
  • Educadores que desejam ensinar C # padrão.
  • Autores que desejam escrever sobre o C# padrão.

Como tal, a conformidade é mais importante, e a maior parte dessa especificação visa especificar as características que tornam as implementações e os programas C# em conformidade.

O texto nesta especificação que especifica os requisitos é considerado normativo. Todos os outros textos desta especificação são informativos, ou seja, apenas para fins informativos. Salvo indicação em contrário, todo texto é normativo. O texto normativo é ainda dividido em categorias obrigatórias e condicionais. O texto condicionalmente normativo especifica um recurso e seus requisitos em que o recurso é opcional. No entanto, se esse recurso for fornecido, sua sintaxe e semântica deverão ser exatamente as especificadas.

O comportamento indefinido é indicado nesta especificação apenas pelas palavras 'comportamento indefinido'.

Um programa estritamente conforme deve usar apenas os recursos da linguagem especificada nesta especificação como sendo necessários. (Isso significa que um programa estritamente conforme não pode usar nenhum recurso condicionalmente normativo.) Ele não deve produzir resultados dependentes de qualquer comportamento não especificado, indefinido ou definido pela implementação.

Uma implementação em conformidade do C# deve aceitar qualquer programa estritamente em conformidade.

Uma implementação em conformidade do C# deve fornecer e dar suporte a todos os tipos, valores, objetos, propriedades, métodos e sintaxe e semântica do programa descritos nas partes normativas (mas não condicionalmente normativas) nesta especificação.

Uma implementação em conformidade do C# deve interpretar caracteres em conformidade com o Padrão Unicode. As implementações em conformidade devem aceitar unidades de compilação codificadas com a forma de codificação UTF-8.

Uma implementação em conformidade do C# não deve traduzir com êxito a fonte que contém uma diretiva de pré-processamento #error, a menos que faça parte de um grupo ignorado pela compilação condicional.

Uma implementação em conformidade do C# produzirá pelo menos uma mensagem de diagnóstico se o programa de origem violar qualquer regra de sintaxe ou qualquer requisito negativo (definido como um requisito "deve" ou "não deve" ou "erro" ou "aviso"), a menos que esse requisito seja marcado com as palavras "nenhum diagnóstico é necessário".

Uma implementação em conformidade do C# tem permissão para fornecer tipos, valores, objetos, propriedades e métodos adicionais além daqueles descritos nesta especificação, desde que não alterem o comportamento de nenhum programa estritamente em conformidade. As implementações em conformidade são necessárias para diagnosticar programas que usam extensões mal formadas de acordo com essa especificação. Tendo feito isso, no entanto, eles podem compilar e executar esses programas. (A capacidade de ter extensões implica que uma implementação em conformidade não reserva outros identificadores além daqueles explicitamente reservados nesta especificação.)

Uma implementação em conformidade do C# deve ser acompanhada por um documento que defina todas as características definidas pela implementação e todas as extensões.

Uma implementação em conformidade do C# deve dar suporte à biblioteca de classes documentada no Anexo C. Esta biblioteca está incluída por referência nesta especificação.

Um programa de conformidade é aquele que é aceitável para uma implementação de conformidade. (Esse programa tem permissão para conter extensões ou recursos condicionalmente normativos.)