Partilhar via


Introdução à linguagem C# e ao .NET Framework

C# é uma linguagem orientada a objeto elegante e de tipo seguro que permite aos desenvolvedores criar uma variedade de aplicativos seguros e robustos que são executados no .NET Framework. É possível usar C# para criar muito aplicativos de cliente do Windows, serviços Web XML, componentes distribuídos, aplicativos de cliente-servidor, aplicativos de banco de dados, e muito mais. O Visual C# fornece um editor de códigos avançado, designers de interface de usuário convenientes, depurador integrado, e muitas outras ferramentas para facilitar o desenvolvimento de aplicativos baseados na linguagem C# e no .NET Framework.

Dica

A documentação de Visual C# presume que você tenha uma compreensão dos conceitos básicos de programação.Se você for um novato completo, você pode querer 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 ganhar habilidades práticas de programação.

Linguagem C#

A sintaxe de C# é altamente expressiva, mas também é simples e fácil de aprender. A sintaxe de chave do C# será imediatamente reconhecível para qualquer pessoa familiarizada com C, C++ ou Java. Os desenvolvedores que conhecem qualquer uma dessas linguagens normalmente podem começar a trabalhar produtivamente no C# em muito pouco tempo. A sintaxe de C# simplifica muitas das complexidades de C++ e fornece recursos avançados, como tipos que permitem valores nulos, enumerações, representantes, expressões lambda e acesso direto à memória, que não são encontrados em Java. C# suporta os métodos e tipos genéricos, que fornecem maior segurança e desempenho de tipo, e iteradores, que permitem implementadores de classes de coleção para definir os comportamentos personalizados de iteração que são simples de usar por código do cliente. as expressões de LINQ (Consulta Integrada à Linguagem) tornam a consulta fortemente tipada em uma construção de linguagem de primeira classe.

Como uma linguagem orientada a objeto, C# oferece suporte aos conceitos de encapsulamento, herança e polimorfismo. Todas as variáveis e métodos, incluindo o método Main, o ponto de entrada do aplicativo, são encapsulados nas definições de classe. Uma classe pode ser herdada diretamente de uma classe pai, mas ela pode implementar qualquer número de interfaces. Os métodos que substituem métodos virtuais em uma classe pai requerem a palavra-chave override como uma maneira para evitar a redefinição acidental. Em C#, um estrutura é como uma classe leve; é um tipo alocado de pilha capaz de implementar interfaces, mas não dá suporte à herança.

Além desses princípios básicos orientados a objeto, o C# facilita o desenvolvimento de componentes de software por meio de vários constructos de linguagem inovadores, inclusive os seguintes:

  • As assinaturas de método encapsuladas chamaram representantes, que habilitam notificações de eventos com segurança.

  • Propriedades, que servem como acessadores para variáveis de membro particular.

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

  • Comentários Embutidos da Documentação XML.

  • LINQ (Consulta Integrada à Linguagem) que fornece recursos internos de consulta através de várias de fontes de dados.

Se precisar interagir com outro software do Windows, como objetos COM ou DLLs Win32 nativas, você precisará fazer isso no C# por meio de um processo chamado "Interop". Interoperabilidade permite programas C# a fazerem quase tudo o que um aplicativo nativo C++ pode fazer. C# tem suporte para ponteiros e o conceito de código “não seguro” para esses casos em que o acesso direto à memória é absolutamente crítico.

O processo de compilação do C# é simples em comparação ao C e C++ e mais flexível do que em Java. Não há nenhum arquivo de cabeçalho separado e nenhum requisito de que métodos e tipos sejam declarados em uma ordem específica. Um arquivo de origem C# pode definir qualquer número de classes, estruturas, interfaces e eventos.

A seguir, recursos C# adicionais:

Arquitetura da plataforma do .NET Framework

Os programas C# executam no .NET Framework, um componente integral do Windows que inclui um sistema virtual de execução chamado CLR (Common Language Runtime) e um conjunto unificado de bibliotecas de classes. O CLR é a implementação comercial feita pela Microsoft da CLI (common language infrastructure), um padrão internacional que é a base da criação de ambientes de execução e de desenvolvimento nos quais linguagens e bibliotecas funcionam juntos perfeitamente.

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

Quando o programa C# é executado, o assembly é carregado no CLR, que pode executar várias ações com base nas informações contidas no manifesto. Em seguida, se os requisitos de segurança forem atendidos, o CLR executará a compilação JIT (just in time) para converter o código IL em instruções de computador nativo. O CLR também oferece outros serviços relacionados à coleta de lixo automática, à manipulação de exceções e o gerenciamento de recursos. O código que é executado pelo CLR geralmente é conhecido como “código gerenciado”, em contraste com o “código não gerenciado” que é compilado na linguagem de máquina nativa que direciona um sistema específico. O diagrama a seguir ilustra as relações de tempo de compilação e de execução de arquivos de código-fonte C#, as bibliotecas de classe do .NET Framework, assemblies e o CLR.

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

Interoperabilidade de linguagem é um recurso chave de .NET Framework. Como o código IL gerado pelo compilador C# está de acordo com a CTS (Especificação de Tipo Comum), código IL gerado de C# pode interagir com o código que foi gerado das versões .NET do Visual Basic, Visual C++, ou qualquer uma das outras 20 linguagens compatíveis com CTS. Um único assembly pode conter vários módulos escritos em diferentes linguagens do .NET, e os tipos podem fazer referência uns aos outros como se fossem escritos exatamente na mesma linguagem.

Além dos serviços de tempo de execução, .NET Framework também inclui uma biblioteca abrangente de mais de 4.000 classes organizadas em namespaces que fornecem uma ampla variedade de funcionalidade útil para tudo, da entrada e da saída de arquivo à manipulação da cadeia de caracteres, além da análise de XML e dos controles dos Windows Forms. O aplicativo típico C# usa extensivamente a biblioteca de classes .NET Framework para manipular tarefas comuns de "encanamento".

Para obter mais informações sobre o .NET Framework, consulte Overview of the Microsoft .NET Framework.

Capítulos do Livro em Destaque

C# Language Fundamentals em Learning C# 3.0: Master the fundamentals of C# 3.0

C# and .NET Programming em Learning C# 3.0: Master the fundamentals of C# 3.0

Apresentando C# em Iniciando o Visual C# 2010

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

Consulte também

Outros recursos

Visual C#

Introdução ao Visual C# e ao Visual Basic