Pregunta

Estoy buscando escribir una biblioteca que use la nueva función de parámetros opcionales de C # 4.0, pero quiero apuntarla a la versión 3.5 del marco. ¿Es esto posible?

¿Los parámetros opcionales son azúcar sintáctica de la misma manera que los métodos de extensión?

¿Fue útil?

Solución

Con VS2010 RC, pude crear una aplicación .NET 3.5 que usa parámetros opcionales en C #.

Entonces sí, se trata de azúcar sintáctico.

Otros consejos

VS 2010 admite parámetros opcionales en C # para soluciones .NET 3.5. Sin embargo, una advertencia es que el compilador de línea de comandos informará de errores.

Entonces, si tiene compilaciones automatizadas en ejecución, usando NANT u otra cosa usando el compilador de línea de comandos, sus compilaciones fallarán.

Al igual que Jon Skeet, estaba obteniendo '' La característica 'parámetro opcional' no se puede usar porque no forma parte de la especificación del lenguaje 3.0 C # ''. Sin embargo, en la versión RTM de Visual Studio, puede seleccionar Versión del idioma como "predeterminada". en Project Properties- > Build- > Advanced. Eso hizo que funcionara para mí.

Puede usar parámetros opcionales y con nombre en un marco específico de una versión anterior siempre que los ensamblajes se creen dentro de un entorno de desarrollo para v4 (es decir, VS2010). Pero debe tener en cuenta la compilación en tiempo de ejecución o la publicación de sitios web, en este caso se utilizará el compilador del marco de trabajo específico. Y debido a que los compiladores de los marcos anteriores no entienden la sintaxis de los parámetros opcionales y nombrados, dará lugar a errores del compilador.

Ir a las propiedades del proyecto - > Pestaña Construir - > haga clic en el botón 'Avanzado' - > configura la versión del idioma como 'predeterminada' - > guardar - > ser feliz;)

No tengo VS2010 instalado aquí para verificar, pero creo que esto sería puramente una función de lenguaje y, por lo tanto, debería ser utilizable independientemente del marco al que se dirija.

Editar: mirando este enlace (y algunos otros), parece que los parámetros opcionales se compilan para argumentos de métodos con un atributo [opt] en el il. No sé si este parámetro existía en versiones anteriores del clr, pero aún supongo que sí.

VB.NET tiene parámetros opcionales si desea usar parámetros opcionales en .NET 3.5.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top