Compartir a través de


5 Conformidad

La conformidad es de interés para las siguientes audiencias:

  • Aquellos que diseñan, implementan o mantienen implementaciones de C#.
  • Entidades gubernamentales o comerciales que desean adquirir implementaciones de C#.
  • Las organizaciones de prueba que desean proporcionar un conjunto de pruebas de conformidad de C#.
  • Programadores que desean migrar código de una implementación de C# a otra.
  • Educadores que deseen enseñar C#estándar.
  • Autores que quieran escribir sobre C#estándar.

Por lo tanto, la conformidad es más importante y la mayor parte de esta especificación está destinada a especificar las características que hacen que las implementaciones de C# y los programas de C# cumplan las.

El texto de esta especificación que especifica los requisitos se considera normativo. El resto de texto de esta especificación es informativo; es decir, solo con fines informativos. A menos que se indique lo contrario, todo el texto es normativo. El texto normativo se divide aún más en categorías obligatorias y condicionales. El texto normativo condicional especifica una característica y sus requisitos en los que la característica es opcional. Sin embargo, si se proporciona esa característica, su sintaxis y semántica serán exactamente como se especifica.

El comportamiento no definido solo se indica en esta especificación mediante las palabras "comportamiento indefinido".

Un programa estrictamente conforme usará solo las características del lenguaje especificado en esta especificación según sea necesario. (Esto significa que un programa estrictamente conforme no puede usar ninguna característica normativa condicionalmente). No generará una salida que dependa de ningún comportamiento no especificado, indefinido o definido por la implementación.

Una implementación conforme de C# aceptará cualquier programa estrictamente conforme.

Una implementación conforme de C# proporcionará y admitirá todos los tipos, valores, objetos, propiedades, métodos y sintaxis de programa y semántica descritas en las partes normativas (pero no normativas condicionalmente) de esta especificación.

Una implementación conforme de C# interpretará los caracteres conforme al estándar Unicode. Las implementaciones conformes aceptarán unidades de compilación codificadas con el formulario de codificación UTF-8.

Una implementación conforme de C# no traducirá correctamente el origen que contiene una directiva de preprocesamiento de #error a menos que forme parte de un grupo omitido por la compilación condicional.

Una implementación conforme de C# generará al menos un mensaje de diagnóstico si el programa de origen infringe cualquier regla de sintaxis, o cualquier requisito negativo (definido como "debe" o "no debe" o "error" o "advertencia"), a menos que ese requisito esté marcado con las palabras "no se requiere ningún diagnóstico".

Se permite una implementación conforme de C# para proporcionar tipos, valores, objetos, propiedades y métodos adicionales más allá de los descritos en esta especificación, siempre que no modifiquen el comportamiento de ningún programa estrictamente conforme. Las implementaciones conformes son necesarias para diagnosticar programas que usan extensiones que tienen un formato incorrecto según esta especificación. Sin embargo, después de hacerlo, pueden compilar y ejecutar dichos programas. (La capacidad de tener extensiones implica que una implementación conforme no reserva ningún identificador distinto de los reservados explícitamente en esta especificación).

Una implementación conforme de C# se acompañará de un documento que defina todas las características definidas por la implementación y todas las extensiones.

Una implementación conforme de C# admitirá la biblioteca de clases documentada en el anexo C. Esta biblioteca se incluye por referencia en esta especificación.

Un programa conforme es uno que es aceptable para una implementación conforme. (Este programa puede contener extensiones o características normativas condicionalmente).