programando C#

5
 PARTE I A Linguagem C# Capítulo 1, C# 3.0 e o .NET 3.5 Capítulo 2, Iniciando: “Hello World” Capítulo 3, Fundamentos da Linguagem C# Capítulo 4, Classes e Objetos Capítulo 5, Herança e Polimorfismo Capítulo 6, Sobrecarga de Operador Capítulo 7, Estruturas Capítulo 8, Interfaces Capítulo 9, Arrays, Indexadores e Coleções Capítulo 10, Strings e Expressões Regulares Capítulo 11, Exceções Capítulo 12, Delegados e Eventos 

Transcript of programando C#

Page 1: programando C#

5/8/2018 programando C# - slidepdf.com

http://slidepdf.com/reader/full/programando-c 1/5

 

PARTE I

A Linguagem C#

Capítulo 1, C# 3.0 e o .NET 3.5 Capítulo 2, Iniciando: “Hello World” 

Capítulo 3, Fundamentos da Linguagem C# 

Capítulo 4, Classes e Objetos 

Capítulo 5, Herança e Polimorfismo 

Capítulo 6, Sobrecarga de Operador 

Capítulo 7, Estruturas 

Capítulo 8, Interfaces 

Capítulo 9, Arrays, Indexadores e Coleções 

Capítulo 10, Strings e Expressões Regulares 

Capítulo 11, Exceções 

Capítulo 12, Delegados e Eventos 

Page 2: programando C#

5/8/2018 programando C# - slidepdf.com

http://slidepdf.com/reader/full/programando-c 2/5

Page 3: programando C#

5/8/2018 programando C# - slidepdf.com

http://slidepdf.com/reader/full/programando-c 3/5

 

O Objetivo do C# 3.0 é fornecer uma linguagem simples, segura, moderna, orientada a objetos, focada em internet e de altaperformance para desenvolvimento .NET. C# é agora uma linguagem totalmente madura, e isso é demonstrado nas liçõesaprendidas através de três décadas. Muito da mesma forma que você observa numa criança as características e personalidadede seus pais e avós, você facilmente observa no C# a influência do Java, C++, Visual Basic (VB), e outras linguagens, mastambém pode observar as lições aprendidas desde a primeira apresentação do C#.

O foco deste livro é o C# 3.0 e sua utilização como ferramenta para programação em plataforma .NET, especificamente eespecialmente com Visual Studio .NET 2008.

Muitos dos programas neste livro são escritos como aplicativos de console (ao invés de aplicativos Windows ou web) parafacilitar a concentração nas características da linguagem ao invés de estar distraído com a interface com o usuário.

Este capítulo apresenta tanto a linguagem C# como a plataforma .NET, incluindo o .NET Framework 3.5.

A Evolução do C#

Cada geração do C# tem trazido adicionais relevantes à linguagem, com poucas excelentes funções. Talvez a mais significativafunção adicionada para o C# 2.0 foi Generics (permitindo um aperfeiçoamento de segurança de tipo quando lidando comcollections - coleções). Desta forma, a adição mais significativa ao C# 3.0 deve ser a extensão de Consulta de LinguagemIntegrada (LINQ, Language-Integated Query), que adicionam ao C# extensões de consulta de dados de finalidade geral;embora não seja a única melhoria do C#.

Outras novas características incluídas:

Expressões Lambda (delegates anonimos nos steroids)

Métodosde Extensão

Inicializadores de Objeto

Tipos anônimos

Variáveis locais de tipo implícito

Vetores de tipo implícito

Árvores de Expressão

Propriedades Automáticas (uma pequena jóia)

A Linguagem C#

A essência da linguagem C# é tranquilizadoramente simples, com pouco mais de 100 palavras chave e uma dúzia de tiposinternos de variáveis, mas é altamente expressiva quando vem a implementar conceitos modernos de programação. C# inclui

CAPÍTULO 1

C# 3.0 e .NET 3.5

3

Page 4: programando C#

5/8/2018 programando C# - slidepdf.com

http://slidepdf.com/reader/full/programando-c 4/5

 

4 l Capítulo 1: C# 3.0 e o .NET 3.5

todo o suporte para programação estruturada, com componentes funcionais e de orientação a objetos que você espera deuma linguagem moderna construída a partir do C++ e Java. Versão 3.0 tem sido estendida de três formas muito importantes:

Total suporte para LINQ – consultas em relação a dados, agora fazem parte da linguagem.

Total suporte para sintaxes declarativas do Windows Presentation Foundation (WPF; para criação de aplicaçõesricas do Windows), Work Flow (WF), e Silverlight (para criação multi-plataforma e multi-navegadores de aplicaçõesricas de Internet)

Muitas funções convenientes adicionadas para auxiliar a produtividade do programador e para funcionar e rodarcorretamente no Visual Studio 2008

Um Pouquinho de História

A linguagem C# foi originalmente desenvolvida por um pequeno time conduzido por dois engenheiros da Microsoft, AndersHejlsberg e Scott Wiltamuth. Hejlsberg é também conhecido pela criação do Turbo Pascal, uma linguagem popular paraprogramação PC, e por liderar o time que arquitetou o Borland Delphi, um dos primeiros vitoriosos Ambientes deDesenvolvimento Integrados (Integrated Development Environments, IDEs) para programação cliente/servidor.

Características do C#

No coração de qualquer linguagem orientada a objetos, está seu suporte para definir e trabalhar com classes. Classesdeterminam novos tipos, permitindo que você estenda a linguagem e consiga manipular melhor o problema que você estátentando solucionar. C# contém palavras-chave para declaração de novas classes e de seus métodos e propriedades e paraimplementação de encapsulamento , polimorfismo, os três pilares da programação orientada a objetos.

No C#, tudo relacionado a uma declaração de classe localiza-se na própria declaração. Definições de classe C# não necessitamde arquivos de cabeçalho ou arquivos serparados (IDL, Interface Definition Language). Além disso, o C# permite documentaçãodireta (inline) que simplifica a criação online e impresa de documentação para um aplicativo.

C# também permite interfaces, um meio de fazer um contrato com uma classe para processos que a interfacedetermina. No C#, uma classe pode herdar de apenas um objeto pai (parent), mas uma classe pode implementarmúltiplas interfaces. Quando uma classe implementa uma interface, na prática promete proporcionar funcionalidadeque as interfaces especificam.

C# proporciona também um suporte a structs (estruturas), um conceito que tem mudado seu significado de forma relevantea partir do C++. No C#, uma estrutura é um limitado tipo supérfluo que quando instanciado, faz menos pedidos ao sistemaoperacional e à memória, do que uma classe convencional faz. Um struct pode herdar de uma classe ou ser herdada por umaclasse, mas um struct pode implementar uma interface. Este livro demonstrará o porquê de eu não considerar structs tãoimportantes no mundo dos Generics (Genéricos). A verdade é que não coloquei uma struct em programas por cinco anos,exceto para demonstrar como é feita sua utilização.

C# proporciona suporte total de delegates (delegados): para invocação de métodos indiretamente. Em outras palavras,como no C++ você pode achar funcionalidade similar (como em ponteiros para funções de membros), mas delegates sãoreferência de tipos seguros que encapsulam métodos com assinaturas e tipos de retorno específicos. Delegates têm sidoextendidas significativamente, primeiro no C# 2.0 e novamente no C# 3.0, primeiramente com anonymous delegates eagora com as Expressões Lambda (Lambda expressions), colocando a base para o LINQ. Nós explicaremos à fundo nosCapítulos 13 e 15.

C# proporciona características orientadas a componentes, como propriedades, eventos e construtores declarativos (comoatributos). Programação orientada a componente é sustentado pelo armazenamento de metadado com o código para aclasse. O metadado descreve a classe, incluindo seus métodos e propriedades, bem como sua necessidade de segurança eoutros atributos, assim como será que pode ser serializado; o código contém a lógica suficiente para executar suas funções.

Page 5: programando C#

5/8/2018 programando C# - slidepdf.com

http://slidepdf.com/reader/full/programando-c 5/5

 

5A Linguagem C#  l

Dessa forma, uma classe compilada é uma unidade independente. Então um ambiente de armazenamento de dados quesabe como ler um metadado e um código de uma classe, não precisa de nenhuma outra informação para fazer utilizaçãodisso. Isso é possível, usando o C# e o Commom Language Runtime (CLR, Tempo de Execução de Linguagem Comum) paraadicionar um metadado personalizado a uma classe pela criação de atributos personalizados. Dessa mesma forma, épossível ler um metadado de classe utilizando os tipos do CLR que suportam reflexão.

Quando você compila seu código, cria um assembly. Um assembly é uma coleção de arquivos que aparecem ao programadorcomo uma única DLL, biblioteca de link dinâmico (Dynamic Link Library) ou executável (EXE). Em .NET, um assembly é a

unidade básica de reutilização, versionamento, segurança e implantação. O CLR proporciona um número de classes paramanipulação de assemblies.

Uma nota final sobre o C# é que ele também proporciona suporte para:

Acesso direto à Memória utilizando ponteiros do estilo C ++,

Palavras-chave para incluir operações como inseguras

Avisa o coletor de lixo CLR para não coletar objetos referenciados por ponteiros até que eles sejam liberados

Aqui é o mundo em ponteiros: você pode usá-los, mas não pode. Eles são como granadas manuais. Você saberá quandoprecisará deles, até que você precise, mantenha o pino neles, mas coloque os em sua maleta pessoal, tentando não pensar

neles. Se você se deparar consigo mesmo tirando um, chame um amigo – antes de puxar pino; então corra para cobrir.

A Plataforma .NET

Quando a Microsoft anunciou o C# em Julho de 2000, seu lançamento foi parte de um evento muito maior: o pronunciamentoda plataforma .NET. A plataforma .NET foi, em meu ponto de vista, um sistema operacional orientado a objeto disfarçado,colocado no topo do sistema operacional existente.

.NET 3.5 representa um amadurecimento mais além daquele framework e traz consigo uma nova forma de criar, bem,apenas sobre tudo, enquanto faz com que nada que tenha aprendido seja obsoleto.

Você ainda pode criar aplicativos web de server-only, mas com AJAX, você pode adicionar controles para a interface cliente(e AJAX proporciona suporte para muito mais, incluindo codificação e decodificação JSON automática). Você pode ainda criaraplicativos de Forms do Windows para aplicativos Windows, mas você também pode criar aplicações Windows mais ricasutilizando WPF, que utiliza uma sintaxe declarativa chamada XAML (explicado com mais detalhe no Capítulo 18). Aquelemesmo XAML é utilizado na criação de aplicativos WF, o qual pode ser utilizado, entre outras coisas, como uma camada denegócios para seus aplicativos.

Para uma total exploração do novo .NET Framework, por favor ver Programando .NET 3.5 por Jesse Liberty and AlexHorowitz (O’ Reilly).

Numa das mais interessantes adições ao Framework, você pode agora utilizar aquele mesmo XAML para produzir AplicativosRicos de Internet multi-plataforma (Windows, Mac e Unix) e multi-navegador (Firefox e Safari) utilizando o Silverlight daMicrosoft.

Para uma total exploração do Silverlight, por favor ver meu blog em http://silverlight.net/blogs/JesseLiberty, fique a esperapelo meu Livro Programando em Silverlight (O’ Reilly), durante 2008.

Todas essas tecnologias de desenvolvimento podem utilizar o C# para lógica de programação; C# pode ser o centro paratoda programação que você faz através do quadro no desenvolvimento de aplicativos .NET da web para área de trabalho, declientes pequenos a grandes, de Aplicativos Ricos de Internet a web service.