Bienvenido al repositorio oficial de diseño en lenguaje C#. Aquí es donde se desarrollan, adoptan y especifican nuevas características del lenguaje C#.
C# está diseñado por el equipo de diseño del lenguaje C# (LDT) en estrecha coordinación con el proyecto Roslyn, que implementa el lenguaje.
Puedes encontrar:
Si descubre errores o deficiencias en lo anterior, deje un problema para plantearlos, o mejor aún: una solicitud de extracción para solucionarlos.
Sin embargo, para propuestas de nuevas funciones , plantéelas para su discusión y solo envíe una propuesta como un problema o una solicitud de extracción si lo invita un miembro del equipo de diseño de lenguaje (un "campeón").
El proceso de diseño completo se describe aquí. A continuación se ofrece una descripción general más breve.
El debate relacionado con las características del lenguaje se lleva a cabo en forma de debates en este repositorio.
Si desea sugerir una característica, discutir notas o propuestas de diseño actuales, etc., abra un nuevo tema de discusión.
Es mucho más probable que se lean las discusiones que son breves y se centran en el tema. Si dejas el comentario número cincuenta, lo más probable es que sólo unas pocas personas lo lean. Para que las discusiones sean más fáciles de navegar y beneficiarse, observe algunas reglas generales:
Se pueden lograr propuestas de lenguaje que impidan que se produzca una sintaxis específica con un analizador Roslyn. El comité de diseño del lenguaje rechazará las propuestas que solo hagan que la sintaxis existente sea opcionalmente ilegal para evitar una mayor complejidad del lenguaje.
Cuando un miembro de C# LDM descubre que una propuesta merece la consideración de todo el equipo, puede defenderla, lo que significa que la llevará a la reunión de diseño del lenguaje C#. Las propuestas siempre se discuten en discusiones vinculadas, no en el tema principal. No siempre seguimos esta política, por lo que se discutirán muchos temas destacados; Ahora bloqueamos los temas para evitar que se produzcan nuevas discusiones sobre ellos. Cada número campeón tendrá un enlace de discusión.
Las propuestas evolucionan como resultado de las decisiones tomadas en las Reuniones de Diseño Lingüístico, que se basan en discusiones, experimentos y trabajos de diseño fuera de línea.
En muchos casos, será necesario implementar y compartir un prototipo de una característica para lograr el diseño correcto y, en última instancia, decidir si se adopta la característica. Los prototipos ayudan a descubrir problemas de implementación y usabilidad de una característica. Se debe implementar un prototipo en una bifurcación del repositorio de Roslyn y cumplir con la siguiente barra:
Una vez aprobada, una característica debe implementarse completamente en Roslyn y especificarse completamente en la especificación del lenguaje, después de lo cual la propuesta se mueve a la carpeta apropiada para una característica completa, por ejemplo, propuestas de C# 7.1.
DESCARGO DE RESPONSABILIDAD : Se está considerando activamente una propuesta activa para su inclusión en una versión futura del lenguaje de programación C#, pero no se garantiza de ninguna manera que finalmente se incluya en la siguiente versión del lenguaje. Una propuesta puede posponerse o rechazarse en cualquier momento durante cualquier fase del proceso anterior según los comentarios del equipo de diseño, la comunidad, los revisores de código o las pruebas.
Tenemos algunos hitos diferentes para las emisiones en el repositorio:
Las reuniones de diseño de lenguaje (LDM) las llevan a cabo el LDT y los invitados ocasionales, y están documentadas en Notas de la reunión de diseño en la carpeta de reuniones, organizadas en carpetas por año. La vida útil de una nota de reunión de diseño se describe en reuniones/README.md. Los LDM son el lugar donde se toman decisiones sobre futuras versiones de C#, incluidas en qué propuestas trabajar, cómo hacer evolucionar las propuestas y si adoptarlas y cuándo.
La especificación ECMA-334 actual se puede encontrar en formato de rebajas en el repositorio del estándar del lenguaje C#.
La implementación de referencia del lenguaje C# se puede encontrar en el repositorio de Roslyn. Este repositorio también realiza un seguimiento del estado de implementación de las funciones del idioma. Hasta hace poco, allí también se rastreaban los artefactos de diseño del lenguaje. Por favor espere un poco de tiempo mientras avanzamos sobre las propuestas activas.