• Nenhum resultado encontrado

Para desenvolvedores C++ C#

No documento Apostila Visual C# (Consolidada)_pt-Br (páginas 155-158)

A tabela a seguir contém importantes comparações entre C# e C++ nativo, que não usa /clr. Se você for um programador C++, esta tabela permitirá que você as diferenças entre duas linguagens de relance as mais importantes.

Observação

Projetos C# e C++ são derivados dos modelos de projetos diferentes. Para obter mais

informações sobre as diferenças entre projetos C++ e C#, consulte Gerenciamento item no

projetos e Usando Solution Explorer.

Recurso Consulte o tópico

Herança: em C++, classes e estruturas são praticamente idênticas enquanto em C#, eles são bem diferentes. Classes C# pode implementar qualquer número de interfaces, mas pode herdar de apenas uma classe base. Além disso, estruturas C# não oferece suporte a herança, e não oferecerem suporte para construtores padrão explícito (um é fornecida por padrão).

Classe Interface

struct (Referência do C#)

Matrizes: em C++ uma matriz é simplesmente um ponteiro. No C#, matrizes são objetos que incluem métodos e propriedades. Por exemplo,

o tamanho de uma matriz pode ser consultado via a Length propriedade.

Matrizes C# também empregar Indexadores que verificam cada índice usado para acessar a matriz. A sintaxe de declaração matrizes C# é diferente do idioma para matrizes C++: os símbolos [] " " aparecer após o tipo de matriz no C#, não a variável.

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

nenhuma conversão entre o bool tipo e outros tipos.

O long tipo enquanto em C++, ele está 32 bits.: em C#, o long tipo é 64 bits,

long

Passar parâmetros: em C++, todas as variáveis são passados por valor, a menos que explicitamente passados com um ponteiro ou uma

referência. Do ref no C#, classes são passados por referência e estruturas são passadas pelo valor a menos que explicitamente passados por referência com ou out modificadores de parâmetro.

struct Classe

(referência) C# ref Fora (referência C#)

A switch instrução: ao contrário a instrução C++ switch, C# não oferece suporte through fall-de um rótulo case para outro.

Alternar

Representantes: representantes C# são aproximadamente semelhantes aos indicadores de função em C++, são de tipo seguro e segura.

Delegar

Métodos de classe base: C# oferece suporte a base palavra-chave para chamar os membros de substituído classe base de classes derivadas. Além disso, substituir métodos virtual ou abstract é explícito em C#, usando a override palavra-chave.

Base

Consulte também os exemplos para

Substituir

Ocultando método: C++ oferece suporte a implícito " ocultar " do método através de herança. Em C#, você deve usar o new modificador para explicitamente ocultar um membros herdadas

Novo

Diretivas de pré-processamento são usadas para compilação condicional. Nenhum arquivo de cabeçalho são usados em C#.

Directives Preprocessor C#

A manipulação de exceção e exceção é acionada.: C# fornece palavra- chave finally para fornecer para código que deve ser executado independentemente de se

finally try- finally try-catch-

Operadores C# e typeof.: C# oferece suporte, como is operadores adicionais Ele também apresenta funcionalidade diferente para alguns operadores lógicos. & Operator Operador | Operador ^ é TypeOf

Palavra-chave extern: em C++, extern é usado para importar tipos. No C#, extern é usada para criar aliases para usar versões diferentes do mesmo conjunto.

extern

Palavra-chave static: em C++, static pode ser usado tanto para declarar entidades nível de classe e para declarar tipos que são específicos para um módulo. No C#, static só é usada para declarar entidades nível de classe.

static

O Main método em C# é declarado de forma diferente da função main em C++. Em C#, ele seja maiúscula e sempre static. Além disso, o suporte para processamento de argumentos de linha de comando é muito mais robusta em C#.

Main() e argumentos de linha de comando (Guia de programação C#)

Ponteiros são permitidos em C#, mas somente no unsafe modo. Não seguro

Sobrecarga operadores será executada de maneira diferente em C#. Operadores C#

Seqüências: em C++ uma seqüência é simplesmente um arra de caracteres. Em C#, seqüências são objeto que oferecem suporte robustos métodos de pesquisa.

string String

Globals: em C#, não há suporte para métodos globais e variáveis Métodos e variáveis precisa estar contidos em ou struct. um class

Estrutura geral de um programa C#

Importando Tipos: em C++, tipos comuns a vários módulos são colocados em arquivos de cabeçalho. No C#, essas informações está disponíveis através de metadados.

Usando

Visão Geral Sobre Metadados

Variáveis locais em C# 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 de lixo coletado; memória que é não explicitamente Release permanece alocada até que o processo termina. C# é uma linguagem de lixo coletado.

Coleta de Lixo

Destructors: C# tem sintaxe diferente para deterministically liberando recursos não gerenciados.

Destructors Instrução using (Referência do C#)

Construtores: similar ao C++, se você não fornecer um construtor de classe em C#, um construtor padrão é gerado automaticamente para você. O construtor padrão inicializa todos os campos para seus valores padrão.

Construtores da instância

Tabela de valores padrão

C# não oferece suporte campos Bit. Campos bit C++

Serviços de entrada / saída C# e formatação contam com a biblioteca de tempo de execução do .NET Framework.

Tour linguagem C# Formatação numérica tabela de resultados

Em C#, parâmetros de método não podem ter valores padrão. Use overloads método se você desejar obter o mesmo efeito.

Compilador CS0241 de erro

Em C#, tipos genéricos e métodos fornecem para parametrização Tipo de uma maneira que é semelhante aos modelos C++, embora existem diferenças significativas.

Generics em C#

Palavra-chave as é semelhante a um efeito padrão, exceto que em vez de acionar uma exceção se falhar a conversão, o valor de retorno é nulo. Isso é semelhante ao uso static_cast em C++, que,. diferente

dynamic_cast, executa nenhuma verificação em tempo de execução e,

portanto, não não acionar uma exceção na falha

Como referência (C#)

Para obter mais informações sobre comparações entre palavras-chave em C# e outras linguagens

de programação, consulte Equivalentes do idioma. Para obter informações sobre a estrutura geral

No documento Apostila Visual C# (Consolidada)_pt-Br (páginas 155-158)

Documentos relacionados