Partilhar via


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).

classe

interface

struct (translation from VPE for Csharp Reference)

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.

Matrizes (Guia de programação do C#)

Indexadores (guia de programação C#)

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.

bool

The long tipo: Em translation from VPE for Csharp, o long tipo é de 64 bits, enquanto no C++, é de 32 bits.

long

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.

struct

classe

REF (translation from VPE for Csharp Reference)

check-out (translation from VPE for Csharp Reference)

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.

Alternar

Delegados: Translation from VPE for Csharp delegados são aproximadamente semelhantes a ponteiros de função em C++, seguro e de fortemente tipado.

delegado

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.

Base

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.

Novo

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.

Directives Preprocessor C#

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.

try-finally

try-catch-finally

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.

Operador &

| Operador de

Operator ^

é

TypeOf

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.

usando diretiva (translation from VPE for Csharp Reference)

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).

extern

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.

estático

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.

Não seguro

Sobrecarga de operadores é executada diferente translation from VPE for Csharp.

Operadores C#

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.

string

String

The foreach palavra-chave permite que você iterar por meio de matrizes e coleções.

foreach, na

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.

static (referência C#) 

Const (translation from VPE for Csharp Reference)

Enum (translation from VPE for Csharp Reference)

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.

Usando

Visão Geral Sobre Metadados

Variáveis locais no translation from VPE for Csharp não podem ser usadas antes que eles sejam inicializados.

Métodos (Guia de programação do C#)

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.

Coleta de Lixo

Destruidores: Translation from VPE for Csharp tem sintaxe diferente para deterministicamente liberar recursos não gerenciados.

Destructors

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.

Construtores de instância

Tabela de valores padrão

Translation from VPE for Csharp não oferece suporte a campos de bit.

Campos de bit do C++

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.

Tour de linguagem translation from VPE for Csharp

Formatação numérica tabela de resultados

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.

CS0241 de erro do compilador

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.

Genéricos no translation from VPE for Csharp

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#) .

Consulte também

Conceitos

Guia de Programação C#

Gerenciamento de itens em projetos

Usando o Solution Explorer