Pergunta

Eu estou olhando para escrever uma biblioteca que usa os novos parâmetros opcionais característica do C # 4.0, mas eu quero destiná-las para a versão 3.5 do framework. Isso é possível?

são parâmetros opcionais açúcar sintático da mesma forma que os métodos de extensão são?

Foi útil?

Solução

Com VS2010 RC, eu era capaz de criar um aplicativo .NET 3.5 que usa parâmetros opcionais em C #.

Então, sim, é tudo sobre o açúcar sintático.

Outras dicas

VS 2010 suporta parâmetros opcionais em C # para .NET 3.5 soluções. Uma ressalva porém, é que o compilador de linha de comando irá relatar erros.

Então, se você tiver automatizado constrói em execução, - utilizando NANT ou qualquer outra coisa usando o compilador de linha de comando -. Seu constrói falhará

Como Jon Skeet eu estava ficando "Recurso 'parâmetro opcional' não pode ser usado porque não é parte da especificação # linguagem 3.0 C". No entanto, na versão RTM do Visual Studio você pode selecionar Versão da linguagem de "default" no Projeto Propriedades-> Build-> Avançado. Que tenho que trabalhar para mim.

Você pode usar os parâmetros opcionais e nomeados em um quadro alvo de uma versão anterior, desde as assembleias são construídos dentro de um ambiente de desenvolvimento para v4 (F. E. VS2010). Mas você deve estar ciente do tempo de execução compilação ou publicação de sites, neste caso, o compilador do quadro alvo será usado. E porque os compiladores dos quadros mais velhos não compreende a sintaxe opcional e params nomeado ele será resulta em erros do compilador.

Vá para propriedades do projeto -> Build Tab -> clique no botão 'Avançado' -> versão do idioma definido para 'default' -> salvar -> ser feliz;)

Eu não tenho VS2010 instalado aqui para verificar, mas acredito que isso seria puramente um recurso de linguagem e, portanto, deve ser utilizável independentemente do quadro a ser alvo.

Edit: Olhando para esta ligação (e alguns outros), parece que os parâmetros opcionais compilar para argumentos de método com um atributo [opt] no il. Eu não sei se este parâmetro existia em versões anteriores do CLR, mas ainda meu palpite seria que ele faz.

VB.NET tem parâmetros opcionais se você quiser usar os parâmetros opcionais no .NET 3.5.

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