Introduction to the C# Language and the .NET Framework

C# é uma elegante e fortemente tipadas orientada a objeto linguagem que permite aos desenvolvedores criar uma variedade de aplicativos seguros e robustos que são executados na .NET Framework. Você pode usar o C# para criar aplicações tradicionais do Windows, Web services baseados em XML, componentes distribuídos, aplicativos cliente-servidor, aplicativos com banco de dados e muito, muito mais. Visual C# 2010Fornece um editor de código avançado, designers de interface de usuário convenientes, depurador integrado e muitas outras ferramentas para facilitar o desenvolvimento de aplicativos com base na versão 4.0 do C# o idioma e a versão 4.0 da .NET Framework.

ObservaçãoObservação

O Visual C# documentação pressupõe que você tenha uma compreensão dos conceitos de programação básica. Se você for um completo principiante, convém explorar Visual C# Express, que está disponível na Web. Você também pode tirar proveito de livros e recursos da Web sobre C# para aprender as práticas de programação.

A Linguagem C#

A sintaxe do C# é altamente expressiva, mas ela também é simples e fácil de aprender. A sintaxe do C# será instantaneamente reconhecida qualquer pessoa familiarizada com C, C++ ou Java. Os desenvolvedores que sabem qualquer uma dessas linguagens são geralmente capazes de começar a trabalhar de forma produtiva com C# dentro de um tempo muito curto. A sintaxe do C# simplifica muitas das complexidades do C++ e fornece recursos poderosos, como tipos de valor nulo, enumerações, delegates, expressões lambda e acesso direto a memória, que não são encontrados no Java. O C# suporta métodos e tipos genéricos, que fornecem uma melhor segurança de tipo e desempenho, e iteradores, que permitem implementadores de coleções de classes para definir comportamentos de iteração personalizados  que são simples de usar pelo código cliente. LINQ (consulta integrada à linguagem)expressões Verifique o tipo mais acentuado consultar uma construção de linguagem de primeira classe.

Como uma linguagem orientada à objetos, o C# suporta os conceitos de encapsulamento, herança e polimorfismo. Todas as variáveis e métodos, incluindo o Main método, o ponto de entrada do aplicativo, são encapsulados em definições de classe. Uma classe derivada pode herdar diretamente somente de uma classe pai, mas pode herdar de qualquer quantidade de interfaces. Métodos que substituem métodos virtuais em uma classe pai exigem a override palavra-chave como uma maneira de evitar redefinição acidental. No C#, uma estrutura é como uma classe simplificada; ele é um tipo alocado na pilha que pode implementar interfaces mas não tem suporte a herança.

Além destes princípios básicos da programação orientada à objetos, o C# faz com que seja fácil desenvolver software através de vários componentes inovadores da linguagem, incluindo os seguintes:

  • Encapsulado assinaturas de método chamadas delegados, que permitem que as notificações de evento de tipo seguro.

  • Propriedades, que servem como accessadores de variáveis membros privadas.

  • Atributos, que fornecem metadados declarativos sobre tipos no tempo de execução.

  • Comentários internos da documentação XML.

  • LINQ (consulta integrada à linguagem)que fornece recursos de consulta interna em uma variedade de fontes de dados.

Se você tiver que interagir com outros softwares do Windows como, por exemplo, objetos COM ou DLLs nativas Win32, você pode fazer isso no C# por meio de um processo chamado "Interoperabilidade". Interoperabilidade permite que os programas C# fazer quase tudo o que pode ser feito por um aplicativo C++ nativo. O C# suporta ponteiros e o conceito de código inseguro para esses casos em que acesso direto à memória é absolutamente crítico.

O processo de compilação do C# é simples comparado com C++ e mais flexível que em Java. Não há arquivos de cabeçalho separados, e não há a necessidade de que métodos e tipos sejam declarados em uma ordem específica. Um arquivo de código em C# pode definir qualquer número de classes, estruturas, interfaces e eventos.

Estes são recursos adicionais do C#:

Arquitetura da plataforma .NET Framework

C# programas executados na .NET Framework, um componente integrante do Windows que inclui um sistema virtual de execução chamado common language runtime (CLR) e um conjunto unificado de bibliotecas de classe. O CLR é implementação comercial pela Microsoft de que o common language infrastructure (CLI), um padrão internacional que é a base para a criação de execução e ambientes de desenvolvimento, nos quais linguagens e bibliotecas trabalham juntas perfeitamente.

O código-fonte escrito em C# é compilado em uma linguagem intermediária (IL) que está em conformidade com a especificação CLI. O código IL e recursos, como bitmaps e strings, são armazenados no disco em um arquivo executável chamado de um assembly, normalmente com uma extensão .exe ou .dll. Um assembly contém um manifesto que fornece informações sobre os tipos do assembly, versão, cultura e requisitos de segurança.

Quando o programa C# é executado, o aseembly é carregado para o CLR, que pode tomar várias ações com base nas informações do manifesto. Então, se os requisitos de segurança são aprovados, o CLR executa a compilação just in time (JIT) para converter o código IL em instruções de máquina. O CLR também oferece outros serviços relacionados à coleta de lixo automática, tratamento de exceções e gerenciamento de recursos. Código que é executado pelo CLR é muitas vezes referido como "código gerenciado", em contraste com o "código não-gerenciado", que é compilado em linguagem de máquina nativa e que foca um sistema específico. O diagrama a seguir ilustra as relações entre o tempo de compilação e de execução de arquivos de código-fonte C#, bibliotecas do NET Framework, assemblies e o CLR.

De código-fonte C# para execução em máquina

Interoperabilidade de linguagem é um recurso importante da .NET Framework. Porque o código IL produzido pelo compilador C# está de acordo com o Common Type Specification (CTS), o código de IL gerado a partir de C# pode interagir com o código gerado a partir do.NET versões de Visual Basic, Visual C++ ou qualquer um dos outras mais de 20 linguagens CTS-compliant. Um único assembly pode conter vários módulos escritos em diferentes linguagens .NET, e os tipos podem referenciar uns aos outros como se eles tivessem sido escritos na mesma linguagem.

Além de para os serviços de tempo de execução, o .NET Framework também inclui uma ampla biblioteca de mais de 4000 classes organizadas em namespaces que fornecem uma ampla variedade de funcionalidades úteis para tudo, desde o arquivo de entrada e saída para manipulação de seqüência para análise de XML, para todos os controles Windows Forms. O aplicativo C# típico usa a .NET Framework biblioteca de classe para manipular comum "direcionamento" tarefas.

Para obter mais informações sobre o.NET Framework, consulte Visão geral sobre o .NET Framework.

Capítulos de livros em destaque

C# Language FundamentalsemLearning C# 3.0: Master the fundamentals of C# 3.0

C# and .NET ProgrammingemLearning C# 3.0: Master the fundamentals of C# 3.0

Visual Studio 2008 and C# Express 2008emLearning C# 3.0: Master the fundamentals of C# 3.0

Consulte também

Outros recursos

Visual C#