Translation from VPE for Csharp para desenvolvedores do C++
A tabela a seguir contém importantes comparações entre translation from VPE for Csharp e C++ nativo, que não usa /clr. Se você for um programador de C++, esta tabela fornece as diferenças mais importantes entre os dois idiomas em um piscar de olhos.
Observação: |
---|
Projetos do C++ e translation from VPE for Csharp são derivados dos modelos de projeto diferente.Para obter mais informações sobre as diferenças entre os projetos do C++ e translation from VPE for Csharp, consulte Gerenciamento de itens em projetos and Usando o gerenciador de soluções. |
Recurso |
Consulte o tópico |
---|---|
Herança: No C++, classes e estruturas são praticamente idênticas enquanto no translation from VPE for Csharp, são bastante diferentes.Classes translation from VPE for Csharp podem implementar qualquer número de interfaces, mas podem herdar de apenas uma classe base.Além disso, translation from VPE for Csharp structs não oferecem suporte a herança e não oferecem suporte a construtores explícitos (um é fornecido por padrão). |
|
Matrizes: No C++ uma matriz é simplesmente um ponteiro.No translation from VPE for Csharp, matrizes são objetos que incluem métodos e propriedades.Por exemplo, o dimensionar de uma matriz pode ser consultado por meio de Length propriedade. Arrays translation from VPE for Csharp também empregam indexadores que verificam cada índice usado para acessar o array.A sintaxe para declarar translation from VPE for Csharp arrays é diferente do que para arrays C++: os tokens de "[]" aparecem após o tipo de matriz translation from VPE for Csharp, não a variável. |
|
Valores Boolean: No C++, a bool tipo é essencialmente um número inteiro. Em translation from VPE for Csharp, não há nenhuma conversão entre o bool tipo e outros tipos. |
|
The long tipo: Em translation from VPE for Csharp, o long tipo é de 64 bits, enquanto no C++, é de 32 bits. |
|
Passando parâmetros: No C++, todas as variáveis são passadas por valor, a menos que explicitamente passados com um ponteiro ou uma referência.No translation from VPE for Csharp, classes são passados por referência e structs são passados por valor, a menos que explicitamente passados por referência com o ref ou out modificador de parâmetro. |
|
The switch demonstrativo: Ao contrário do C++ switch demonstrativo, translation from VPE for Csharp não oferece suporte à queda-através de um rótulo caso para outro. |
|
Delegados: Translation from VPE for Csharp delegados são aproximadamente semelhantes a ponteiros de função em C++, seguro e de fortemente tipado. |
|
Métodos da classe base: Translation from VPE for Csharp suporta o base palavra-chave para chamar os membros da classe base substituída de classes derivadas. Além disso, substituir métodos virtual ou abstratos é explícita em translation from VPE for Csharp, usando o override palavra-chave. |
Consulte também os exemplos para Substituir |
Método ocultando: C++ oferece suporte a implícita "ocultar" do método por meio de herança.Translation from VPE for Csharp, é necessário usar o new modificador de ocultar explicitamente um membros herdados. |
|
As diretivas de pré-processador são usadas para compilação condicional.Não há arquivos de cabeçalho são usados em translation from VPE for Csharp. |
|
Manipulação de exceção: Translation from VPE for Csharp fornece o finally palavra-chave para fornecer código que deve ser executado independentemente de se uma exceção é lançada. |
|
Translation from VPE for Csharp operadores: Translation from VPE for Csharp oferece suporte aos operadores adicionais, sistema autônomo is e typeof. Ele também apresenta funcionalidade diferente para alguns operadores lógicos. |
|
A palavra-chave typedef.No C++, typedef é usada para criar nomes menores ou mais convenientes para tipos que já tenham sido declarados.Em translation from VPE for Csharp, o using diretiva fornece esse recurso. |
|
The extern palavra-chave: In C++, extern é usado para importar os tipos. In C#, extern é usado para criar aliases para usando versões diferentes do mesmo conjunto de módulos (assembly). |
|
The static palavra-chave: In C++, static pode ser usado para declarar entidades de nível de classe e declarar tipos que são específicos para um módulo. In C#, static só é usada para declarar entidades de nível de classe. |
|
The Main método em translation from VPE for Csharp é declarado diferente da main função em C++. No translation from VPE for Csharp seja maiúscula e sempre static. Além disso, o suporte para processamento de argumentos de linha de comando é muito mais robusto em translation from VPE for Csharp. |
Main() e argumentos de linha de comando (guia de programação translation from VPE for Csharp) |
Ponteiros são permitidos em translation from VPE for Csharp, mas somente em unsafe modo. |
|
Sobrecarga de operadores é executada diferente translation from VPE for Csharp. |
|
Strings: No C++, uma cadeia de caracteres é simplesmente um arra de caracteres.Translation from VPE for Csharp, seqüências de caracteres são objeto oferecer suporte aos métodos de pesquisando robusto. |
|
The foreach palavra-chave permite que você iterar por meio de matrizes e coleções. |
|
Globals: Em translation from VPE for Csharp, variáveis e métodos global não são suportadas.Métodos e variáveis devem estar contidas em um class ou struct. |
Estrutura geral de um programa translation from VPE for Csharp |
The #define pré-processamento de diretiva: No C++ o #define diretiva costuma ser usada para declarar valores constante. Em translation from VPE for Csharp o #define diretiva não pode ser usada para essa finalidade. Constantes em translation from VPE for Csharp melhor são definidas sistema autônomo tipos enumerados (somente valores integrais) ou sistema autônomo membros estático de classe ou struct.Se você tiver várias dessas constantes, considere a possibilidade de criar uma classe separada de "Constantes" para armazená-los. |
|
Importação de tipos: No C++, tipos comuns a vários módulos são colocados em arquivos de cabeçalho.No translation from VPE for Csharp, essa informação está disponível por meio de metadados. |
|
Variáveis locais no translation from VPE for Csharp não podem ser usadas antes que eles sejam inicializados. |
|
Gerenciamento de memória: C++ não é uma linguagem lixo coletado; a memória que não for explicitamente versão permanece alocada até que o processo é encerrado.Translation from VPE for Csharp é uma linguagem coletados pelo lixo. |
|
Destruidores: Translation from VPE for Csharp tem sintaxe diferente para deterministicamente liberar recursos não gerenciados. |
usando demonstrativo (referência translation from VPE for Csharp) |
Construtores: Semelhante ao C++, se você não fornecer um construtor de classe translation from VPE for Csharp, um construtor padrão é gerado automaticamente para você.O construtor padrão inicializa todos os campos com seus valores padrão. |
|
Translation from VPE for Csharp não oferece suporte a campos de bit. |
|
Serviços de entrada/saída translation from VPE for Csharp e formatação dependem da biblioteca de time de execução do .NET estrutura. |
|
No translation from VPE for Csharp, parâmetros de método não podem ter valores padrão.Use sobrecargas de método se desejar obter o mesmo efeito. |
|
Translation from VPE for Csharp, tipos genéricos e métodos fornecem de parametrização de tipo de forma que é semelhante a modelos C++.Existem diferenças significativas, entretanto.Por exemplo, em tipo genérico translation from VPE for Csharp informações são preservadas em time de execução. |
|
The as palavra-chave é semelhante a uma projeção de padrão, exceto que, em vez de lançar uma exceção se a conversão falhar, o valor retornado é nulo. Isso é semelhante ao uso de static_cast no C++, que, diferentemente dynamic_cast, não executa nenhuma verificação em time de execução e, portanto, não gerar uma exceção em caso de falha. |
sistema autônomo (translation from VPE for Csharp Reference) |
Para obter mais informações sobre as comparações entre as palavras-chave no translation from VPE for Csharp e Outros linguagens de programação, consulte Equivalentes do linguagem.Para obter informações sobre a estrutura geral de aplicativos translation from VPE for Csharp, consulte Estrutura geral de um programa C# (guia de programação C#) .