Palavras-chave da Linguagem
Várias palavras-chave de idioma é alterado de Managed Extensions for C++ para Visual C++ 2010.
No novo Visual C++ 2010 sintaxe de duplo sublinhado é removido como um prefixo de todas as palavras-chave (com uma exceção: __identifier é mantido). Por exemplo, uma propriedade está agora declarada como property, e não __property.
Havia dois motivos principais para usando o prefixo de sublinhado duplo no Managed Extensions:
É o método conformes de fornecimento de extensões de local para o padrão ISO-c. O principal objetivo do design de Managed Extensions foi não apresentar incompatibilidades com o idioma padrão, como novas palavras-chave e símbolos. Foi esse motivo, em grande parte, motivou a escolha da sintaxe de ponteiro para a declaração de objetos de tipos de referência gerenciada.
O uso do sublinhado duplo, além de seu aspecto conformes, também é uma garantia razoável de que está sendo não-invasivos com a base de código existente, os usuários do idioma. Esse foi o segundo objetivo principal o design de Managed Extensions.
Apesar de o remover sublinhados duplos, a Microsoft continua compromisso de ser conformes. No entanto, o suporte para o modelo de objeto dinâmico CLR representa um paradigma de programação de novo e poderoso. Suporte a esse novo paradigma requer suas próprias palavras-chave de alto nível e tokens. Podemos tenham conseguido oferecer uma expressão de primeira classe desse novo paradigma enquanto integrá-la e a linguagem padrão de suporte. O novo design de sintaxe fornece uma experiência de programação de primeira classe desses dois modelos de objeto diferentes.
Da mesma forma, estamos preocupados com a maximização da natureza não invasiva dessas novas palavras-chave do idioma. Isso tem sido realizado com o uso de palavras-chave contextual e espaçados. Antes de examinarmos a nova sintaxe de linguagem real, vamos tentar dar sentido a esses dois tipos especiais de palavra-chave.
Uma palavra-chave contextual tem um significado especial em contextos de programa específico. Dentro do programa geral, por exemplo, sealed é tratado como um identificador comum. No entanto, quando ele ocorre dentro a parte da declaração de um tipo de classe de referência gerenciado, ele será tratado como uma palavra-chave dentro do contexto dessa declaração de classe. Isso minimiza o impacto potencial de invasivo de introduzir uma nova palavra-chave na linguagem, algo que sentimos é muito importante para usuários com uma base de código existente. Ao mesmo tempo, permite que os usuários das novas funcionalidades tenham uma experiência de primeira classe do recurso idioma adicional – algo que não era possível com extensões gerenciadas. Para obter um exemplo de como sealed é usado Consulte Declaração de um tipo de classe gerenciada.
Uma palavra-chave espaçada, como value class, que é um caso especial de uma palavra-chave contextual. Ele pares uma palavra-chave existente com um modificador contextual, separado por um espaço. O par é tratado como uma única unidade, em vez de fazê-lo de duas palavras-chave separadas.