Você está na página 1de 24

Introduo

Introduo
sta edio do C# 2008 para Leigos representa uma reviso bastante completa. Ela adiciona toneladas de material novo, com organizao aprimorada e muitos novos programas de exemplo. Ento, mesmo que voc tenha visto o livro antes, vlida outra olhada. A linguagem de programao C# uma poderosa e, com cerca de seis anos de idade, uma descendente relativamente madura das anteriores linguagens C, C++ e Java. Programas com esta linguagem muito divertido, como voc est prestes a descobrir neste livro. A Microsoft criou o C# como uma parte principal de sua iniciativa .NET. A Microsoft trocou as especificaes para a linguagem C# para o comit de padres internacional ECMA (pronunciado ek-ma) no vero de 2000, para que, em teoria, qualquer empresa possa aparecer com sua prpria verso de C# escrita para rodar em qualquer sistema operacional, em qualquer mquina maior do que uma calculadora. Quando a primeira edio deste livro surgiu, o compilador C# da Microsoft era a nica maneira de programar C# (de outra forma que no a linha de comando do Windows). Desde ento, entretanto, o Visual Studio passou por trs revises principais a ltima o Visual Studio 2008 e pelo menos dois outros participantes entraram no jogo C#. Agora possvel escrever e compilar programas C# no Windows e numa variedade de mquinas baseadas em Unix usando implementaes do .NET e do C#, como o Mono (www.mono-project.com). O Mono um projeto de software de origem aberta patrocinado pela Novell Corporation. A Verso 1.2 saiu em Novembro de 2006. Apesar de o Mono estar atrasado em comparao com o .NET da Microsoft por meia verso mais ou menos, ele parece estar se movendo rpido, tendo implementado basicamente todo o .NET 1.1 e muito do .NET 2.1, juntamente com essas verses do C#. Tanto o Mono quanto um competidor menos bem desenvolvido, o Portable. NET (www.dotgnu.org/pnet.htm), alegam rodar programas C# no Windows e numa variedade de tipos Unix, incluindo o Linux e o sistema operacional Macintosh da Apple. Nesta escrita, o Portable .NET alcana o maior nmero de tipos, enquanto o Mono ostenta uma implementao .NET mais completa. Ento, escolher entre eles pode ser complicado, dependendo do seu projeto, sua plataforma e seus objetivos. (Livros sobre programao para estas plataformas j esto disponveis.Verifique vendedores de livros online.) Software de origem aberta escrito por colaborao de grupos de programadores voluntrios e geralmente livre para o mundo.

LEM

E-SE BR

C# 2008 Para Leigos


Fazer o C# e outras linguagens .NET portteis para outros sistemas operacionais muito alm do escopo deste livro. Mas voc pode esperar que, dentro de poucos anos, os programas C# do Windows que voc descobrir como escrever neste livro rodaro em todos os tipos de hardware sob todos os tipos de sistemas operacionais combinando com a alegao da linguagem Java da Sun Microsystems de rodar em qualquer mquina. Isso , sem dvida, uma boa coisa, at mesmo para a Microsoft. A estrada para esse ponto ainda est sob construo, ento sem dvida perfurada com fossas e obstculos para a verdadeira portabilidade do C#. Mas no mais que apenas estrada da Microsoft. Para o momento, entretanto, o Visual Studio da Microsoft tem as verses mais maduras do C# e do .NET e o conjunto de ferramentas mais preenchido de atributos para programao com eles. Nota: dois autores escreveram este livro, mas pareceu mais econmico dizer eu em vez de ns, ento foi isto o que ns (eu?) fizemos por toda parte.

O que h de novo no C# 3.0


Enquanto a maioria do C# 3.0 ainda virtualmente a mesma coisa da verso anterior, o C# 3.0 adiciona sim alguns novos atributos excitantes. A grandes novas adies que este livro trata incluem o seguinte: Linguagem Integrada de Consulta (LINQ): O LINQ permite que voc execute operaes em dados usando uma sintaxe C# muito parecida com a Linguagem de Consulta Padro (SQL) que geraes de programadores tm usado para trabalhar com bases de dados. No apenas o LINQ simplifica o cdigo de base de dados, mas voc pode us-lo para escrever consultas em arquivos Linguagem de Marcao Estendida (XML) tambm. O Captulo 17 uma gentil introduo ao LINQ, tratando de minha parte favorita: usar a nova sintaxe de consulta para trabalhar com qualquer coleo de dados, incluindo colees e banco de dados C#. Mtodos de Extenso, Tipos Annimos e Mais: Toneladas de atributos de linguagem legais que enriquecem o C# enquanto servem de base para fazer o LINQ funcionar. Trato destes atributos por todo o livro. HashSet: Uma nova verstil classe de coleo HashSet, tratada no Captulo 5. Deixando de lado algumas das mais esotricas e avanadas adies, mencionarei alguns itens menores aqui e ali, conforme apropriado (no se preocupe se partes desta Introduo forem Grego para voc.Voc chegar l). Em adio aos atributos novos em folha do C# 3.0, o livro adiciona a cobertura de alguns atributos mais antigos que eu no tinha tratado ainda em particular, delegaes, eventos e enumeraes. E voc encontrar forte cobertura de classes de colees C# e muito mais sobre seqncias, interfaces e excees, mais um monte de ajustes, notas e dicas.

Introduo

Sobre Este Livro


O objetivo deste livro explicar o C# para voc, porm, para escrever programas reais, voc precisa de um ambiente de codificao especfica. Estou apostando que a maioria dos leitores usaro o Visual Studio da Microsoft, apesar de sugerir alternativas. Ao basear o livro no Visual Studio, tentei manter as pores do Visual Studio em um mnimo razovel.Voc encontrar um bom tour do Visual Studio e seu depurador no Bnus do Captulo 6, no site da Web que acompanha este livro. Entendo que muitos, se no a maioria, dos leitores iro querer usar o C# para escrever aplicativos grficos no Windows e na Web. O C# uma f erramenta poderosa para esse propsito, mas essa apenas uma rea para usar o C#, e este livro deve focar no C# como uma linguagem. Para iniciar em programas grficos do Windows, visite meu site da Web em csharp102.info. Recomendo que voc tenha uma boa compreenso do C# antes de procurar entender programao Windows por completo. Tambm entendo que alguns usurios poderosos usaro o C# para construir aplicativos prontos para Web, aplicativos distribudos e aplicativos de bases de dados; entretanto, limitaes de publicao requerem que eu estipule o limite em algum lugar. O C# 2008 para Leigos no cuida de desafios de programao distribuda, programao de base de dados ou algumas das outras novas tecnologias como Fundao da Apresentao de Windows, Fundao da Comunicao de Windows ou Fundao de Fluxo de Trabalho de Windows. Entretanto, o livro explica bastante de .NET pela simples razo de que muito do poder do C# vem das bibliotecas de classe da Estrutura .NET que ele usa.

O que voc precisa para usar este livro


No mnimo, voc precisa do .NET Linguagem Comum de Tempo de Execuo (CLR) antes que voc possa at mesmo executar os programas gerados pelo C#. O Visual Studio 2008 copia o CLR para sua mquina como parte do procedimento de instalao. Alternativamente, voc pode fazer download do pacote .NET inteiro, incluindo o compilador C# e muitas outras boas ferramentas, do site da Microsoft em MSDN.microsoft. com. Procure pelo .NET Kit de Desenvolvimento de Software (SDK). Meu site da Web explica como obter estes itens.
D
ICA

Se tudo de que voc precisa o C#, voc pode fazer download de uma verso livre do Visual Studio denominada Visual C# 2008 Express, a partir de MSDN.microsoft.com/vstudio/express. As verses Express incluem novos atributos do C# 3.0. Alternativamente, veja o SharpDevelop (www. icsharpcode.net), muito bom, livre e parecido com o Visual Studio, o qual forneci no site da Web para este livro (neste ponto da escrita, o SharpDevelop ainda est para lanar uma verso compatvel com os novos atributos do C# 3.0/.NET 3.5, mas o trabalho est a caminho).

C# 2008 Para Leigos


D
ICA

Voc pode ainda criar a maioria dos programas neste livro com verses anteriores do Visual Studio como o Visual Studio 2005 , se precisar. As excees so os programas que tratam de novos atributos disponveis apenas com o C# 3.0, listados acima na seo O que novo no C# 3.0.

Como usar este livro


Fizemos este livro to fcil de usar quanto possvel. Descobrir uma nova linguagem difcil suficiente. Por que tornar mais complicado do que precisa ser? O livro dividido em seis partes. A Parte I introduz voc programao C# com o Visual Studio. Esta parte guia voc passo a passo na criao de programas C# simples. Ns fortemente encorajamos voc a iniciar aqui e ler o Captulo 1 antes de partir para as outras partes do livro. Mesmo que voc tenha programado antes, a estrutura de programa bsica criada na Parte I reutilizada por todo o livro. Os captulos das Partes II a V se sustentam sozinhos, mas tm muitas referncias cruzadas com outros captulos. Escrevi estes captulos para que voc possa abrir o livro em qualquer um deles e comear a ler. Se voc novo na programao ou em linguagens da famlia C, voc ter que ler a Parte II antes de saltar adiante. Mas, exceto onde apontado, quando voc retornar para refrescar sua memria em algum tpico particular, voc no dever ter problemas em mover-se para uma seo sem a necessidade de reiniciar 20 pginas atrs. Claro, a Parte dos Dez termina a preparao, e h mais no site da Web que acompanha o livro mais um pequeno extra no meu site da Web em csharp102.info.

Como este livro organizado


Aqui est um breve resumo do que voc encontrar em cada parte do livro.

Parte I: Comeando com o C#


Esta parte mostra a voc, passo a passo, como escrever programas C# no grficos bsicos desenvolvendo uma estrutura simples que usada nas outras partes deste livro.Voc pode encontrar informaes sobre programao grfica no meu site.

Parte II: Programao C# Bsica


No nvel mais bsico, as peas de Shakespeare so apenas uma srie de palavras todas amarradas juntas. Pelo mesmo simbolismo, 90% de qualquer programa C# que voc alguma vez escrever consiste em criar variveis, executar operaes aritmticas e controlar o caminho de execuo por meio de um programa. Esta parte concentra nestas operaes centrais

Introduo
e inclui um novo captulo explicando classes de coleo do C# em detalhes, incluindo a nova classe HashSet.

Parte III: Usando Objetos


Uma coisa declarar variveis aqui e ali e adicion-las e subtra-las. Outra coisa escrever programas reais para pessoas reais. A Parte III foca em como organizar seus dados para torn-los mais fceis de usar na criao de um programa.

Parte IV: Programao Orientada a Objetos


Voc pode organizar as partes de um avio o tanto que quiser, mas at que voc as faa fazer alguma coisa, no mais do que uma coleo de partes. At que voc ative as engrenagem e inicie a oscilao das asas, ele no ir a lugar algum. Do mesmo modo, a Parte V explica o fundamental de programao orientada a objeto (OOP). Se voc for completamente novo no OOP , a Parte V deve fornecer uma transio suave. E um captulo muito melhorado em interfaces leva voc alm do fundamental comum OOP .

Parte V: Mostrando Agora o C# 3.0


Aps o avio sair do cho, ele tem que ir a algum lugar. Neste livro, voc voar sem medo para dentro dos novos atributos do C# 3.0. Em particular, voc pode atualizar suas habilidades em C# para o nvel de piloto no comando com a nova Linguagem Integrada de Consulta (LINQ) agora construda diretamente dentro do C#. Os objetos e colees de objetos que voc esteve explorando nas partes anteriores do livro fixam novos recordes de vo de mar a mar quando voc comear a escrever consultas LINQ. Para ajudar voc a se atualizar, adicionei um novo captulo sobre delegaes e eventos.

Parte VI: A Parte dos Dez


O C# timo em encontrar erros nos seus programas as vezes, ele parece um pouco bom demais em apontar meus defeitos. Entretanto, acredite ou no, o C# est tentando fazer um favor a voc. Qualquer problema que ele encontra outro problema que voc iria de outra forma encontrar por si mesmo. Infelizmente, as mensagens de erro podem ser confusas. Esta parte apresenta as dez mais comuns mensagens de erro na construo C#, o que elas significam e como diabos se livrar delas.

C# 2008 Para Leigos


Muitos leitores vm para o C# de outra linguagem de programao.Voc pode encontrar alguns comentrios teis na transio que estiver fazendo no meu site da Web.

Sobre o site da Web


O site da Web contm bastante coisa. Primeiro, voc encontra uma coleo expandida de todo cdigo fonte deste livro. Um conjunto de utilitrios tambm includo. Usei o utilitrio SharpDevelop o bastante para saber que ele apto tarefa de escrever quase qualquer um dos programas de exemplo neste livro (com a possvel exceo, por enquanto, dos novos atributos LINQ). A ferramenta Refletor deixa voc espiar embaixo da cobertura para ver no que o compilador transformou seu agradvel cdigo fonte C#. A ferramenta de teste NUnit, amplamente popular entre programadores C#, torna fcil testar seu cdigo, tanto do Visual Studio quanto do SharpDevelop. Finalmente, o site da Web contm um bando de captulos bnus tratando de atributos e tcnicas que no caberiam no livro, inclusive um tour do Visual Studio. No esquea do arquivo LeiaMe, que possui todas as informaes mais atualizadas.

cones Usados Neste Livro


Por todas as pginas deste livro, uso os seguintes cones para destacar informaes importantes. Este cone assinala coisas que voc pode pular em uma primeira leitura.

ICA

O cone Dica destaca um ponto que pode salvar tempo e esforo.

LEM

E-SE BR

Lembre-se disto. importante.

CU

ADO! ID

Lembre-se disto tambm. Este pode avanar sobre voc quando voc menos esperar e gerar um daqueles bugs difceis de encontrar ou pode conduzir voc pelo caminho do jardim para a Terra dos Sonhos.

Introduo
Este cone identifica cdigos que voc pode encontrar no site da Web com este livro. Este atributo designado para economizar alguma digitao quando seus dedos comearem a ter cibra, mas no abuse.Voc ganhar um melhor entendimento do C# entrando nos programas voc mesmo e ento usando-os como fundo de teste para suas exploraes e experimentaes em C#.

Convenes usadas neste livro


Por todo este livro, uso vrias convenes para ajudar voc. Termos que no so palavras reais, como o nome de alguma varivel de programa, aparecem nesta fonte para minimizar o fator confuso. Listas de programas so impressas no texto como segue:
use System; { namespace MyNameSpace public class MyClass { } }

Cada lista seguida por uma explanao inteligente e criteriosa. Programas completos esto includos no site da Web para seu prazer de visualizar. Pequenos segmentos de cdigo no esto. Finalmente, voc ver setas de comandos, como na frase Escolha ArquivoAbrir comBloco de Notas. Isso significa escolher a opo Arquivo do menu. Ento, a partir do menu de rolagem que aparecer, escolha Abrir Com. Finalmente, do submenu resultante, escolha Bloco de Notas.

Onde est o cdigo? E as coisas Bnus?


Em uma despedida das edies anteriores deste livro, desta vez escolhemos fornecer todos os exemplos de cdigos, junto com vrios captulos bnus na Web. Assim, voc no encontrar um CD-ROM enfiado na capa traseira.Voc pode obter cdigos e captulos bnus em dois diferentes sites da Web: www.altabooks.com.br Aqui, junto com os cdigos e captulos bnus, voc pode capturar ttulos Para Leigos mencionados no livro alm de muitos ttulos relacionados.

C# 2008 Para Leigos


csharp102.info, meu site da Web. Aqui voc encontrar todo esse mesmo material bnus, alm de muitos artigos que estendem tpicos no livro ou introduzem novos tpicos que eu teria gostado de colocar no livro apenas, claro, impossvel incluir tudo. O site tambm aponta para um nmero de ferramentas de programao e outros recursos C#. No se esquea do arquivo LeiaMe tambm disponvel em ambos os sites da Web , o qual possui todas as informaes mais atualizadas.

Para onde ir a partir daqui


Obviamente, o primeiro passo descobrir a linguagem C#, idealmente usando o C# 2008 Para Leigos, claro.Voc pode querer se dar alguns meses escrevendo programas C# simples antes de dar o prximo passo para descobrir como criar aplicativos do Windows grficos. Se d muitos meses de experincia em aplicativos do Windows antes de diversificar suas atividades ao escrever programas intencionados a serem distribudos pela Internet. Enquanto isso, voc pode manter as idas e vindas do C# em diferentes locais. Primeiro, verifique a fonte oficial: msdn.microsoft.com/msdn. Alm disso, vrios sites da Web de programador tm extenso material sobre C#, incluindo discusses ao vivo por todo o caminho, desde como salvar um arquivo fonte at mritos relativos a coletor de lixo sobre determinismo versus no determinismo. Ao redor da minha casa, coletor de lixo muito determinista: toda quarta-feira de manh. Aqui esto alguns amplos sites sobre C#: msdn.microsoft.com/vcsharp, a homepage do C#, que leva voc a todos os tipos de recursos C# e .NET blogs.msdn.com/csharpfaq, um blog de Perguntas Freqentes sobre C# msdn.microsoft.com/vcsharp/team/blogs, o qual engloba blogs pessoais de membros do time C# www.c-sharpcorner.com e www.codeproject.com, dois principais sites de C# com artigos, blogs, cdigos, informaes de trabalho e outros recursos C# Mantenho um site da Web, csharp102.info, contendo um grupo de Perguntas Freqentes (FAQs). Se voc encontrar algo que no consiga compreender, tente ir l talvez as FAQs j tenham respondido sua questo. Alm disso, o site inclui uma lista de quaisquer erros que possam ter deslizado para dentro do livro, o cdigo exemplo do livro, vrios captulos bnus e toneladas de outros materiais sobre C# e programao que voc pode achar teis. Finalmente, voc pode encontrar um link para meu endereo de e-mail, no caso de no encontrar a resposta para sua questo no site.

Introduo

Parte I

Comeando com o C#
A 5 Onda
de Rich Tennant

Devemos moldar um crculo, invocar os elementos e direcionar a energia. Se isso no funcionar, leremos o manual.

10

C# 2008 Para Leigos

Nesta parte...
oc ter um longo caminho a percorrer antes de se tornar mestre em C#, ento divirta-se um pouco apenas em sair do cho. A Parte I leva voc, por meio dos passos, a criar o mais bsico possvel aplicativo de console Windows usando o Visual Studio 2008. O resultado d a voc a estrutura C# bsica para os programas de exemplo que aparecem por todo este livro.

Captulo 1: Criando seu primeiro aplicativo de console C#

11

Captulo 1

Criando seu primeiro aplicativo de Console C#

Neste captulo
Uma rpida introduo programao; Criando um aplicativo de console simples; Revendo o aplicativo de console; Criando o restante dos programas neste livro.
este captulo, explicarei um pouco sobre computadores, linguagens de computador, C# e Visual Studio 2008. Ento levarei voc por meio dos passos para a criao de um programa muito simples escrito em C#.

Compreendendo Linguagens de Computao, C# e .NET


Um computador um servo espantosamente rpido, mas inacreditavelmente estpido. Computadores faro qualquer coisa que voc pedir que eles faam (dentro do razovel) extremamente rpido e esto se tornando mais rpidos a todo o tempo. Infelizmente, computadores no entendem qualquer coisa que se assemelhe a uma linguagem humana. Oh, voc pode se voltar para mim e dizer algo como Ei, meu telefone me permite discar para meu amigo apenas falando o nome dele. Eu sei que um minsculo computador roda meu telefone. Ento o computador fala portugus. Mas isso um programa de computador que entende portugus, no o prprio computador. A linguagem que computadores realmente entendem geralmente denominada linguagem de mquina. possvel, mas extremamente difcil e passvel de erro para humanos escreverem linguagem de mquina.

12

Parte I: Comeando com o C#


Humanos e computadores decidiram se encontrar em algum lugar intermedirio. Programadores criam programas em uma linguagem que no chega perto de ser to livre quanto a comunicao humana, mas muito mais flexvel e fcil de usar do que linguagem de mquina. As linguagens ocupantes deste solo intermedirio C#, por exemplo so denominadas linguagens de computador de alto nvel (alto um termo relativo aqui).

O que um programa?
O que um programa? Em um sendo prtico, um programa Windows um arquivo executvel que voc pode rodar dando duplo clique no cone. Por exemplo, a verso do Microsoft Word que estou usando para escrever este livro um programa.Voc chama isso de um programa executvel, ou executvel para ser mais sucinto. Os nomes de arquivos de programa executveis geralmente terminam com a extenso .EXE. O Word, por exemplo, denominado Winword.exe. Mas um programa algo mais, tambm. Um programa executvel consiste em um ou mais arquivos fonte. Um programa C# um arquivo de texto que contm uma seqncia de comandos C#, os quais se acoplam de acordo com as leis da gramtica C#. Este arquivo conhecido como um arquivo fonte, provavelmente porque uma fonte de frustrao e ansiedade. Uh, gramtica? Haver gramtica? Apenas do tipo C#, a qual muito mais fcil do que o tipo que a maioria de ns lutou com na escola primria.

O que C#?
A linguagem de programao C# uma daquelas linguagens intermedirias que programadores usam para criar programas executveis. O C# combina o alcance de poderosos mas complicados C++ com o fcil uso do amigvel mas mais eloqente Visual Basic (a mais nova encarnao .NET do Visual Basic est quase parelha com o C# na maioria dos aspectos. Enquanto linguagem chefe do .NET, o C# tende a introduzir a maioria dos novos atributos primeiro). Um programa C# carrega a extenso .CS. Algumas sacudidas apontaram que C-sharp e D-flat so o mesmo sinal, mas voc no deve referir-se a esta nova linguagem como D-flat dentro do alcance de voz de Redmond, Washington. O C# : Flexvel: Programas C# podem ser executados na mquina atual ou podem ser transmitidos pela Web e executados em algum computador distante. Poderoso: O C# tem essencialmente o mesmo conjunto de comandos do C++, mas com as extremidades speras aparadas. Fcil de usar: O C# corrige erros dos comandos responsveis pela maioria dos erros C++, ento voc gasta muito menos tempo caando esses erros.

CU

ADO! ID

Captulo 1: Criando seu primeiro aplicativo de console C#


Orientado visualmente: A biblioteca de cdigo .NET que o C# usa para muitas das suas capacidades fornece a ajuda necessria para prontamente criar quadros de tela com listas suspensas, janelas tabuladas, botes agrupados, barras de rolagem e imagens de fundo, para nomear apenas alguns. Amigvel com a Internet: O C# representa um papel principal na Estrutura .NET, a abordagem atual da Microsoft em programao para Windows, Internet, entre outros. .NET pronunciado ponto net. Seguro: Qualquer linguagem intencionada ao uso na Internet deve incluir sria segurana para proteger contra hackers malvolos. Finalmente, o C# parte essencial do .NET.
LEM

13

ICA

E-SE BR

Por este livro focar na linguagem C#, no um livro de programao para Web, um livro de banco de dados ou um livro de programao grfica para Windows.

O que .NET?
.NET iniciou alguns anos atrs como estratgia da Microsoft de abrir a Web para meros mortais como voc e eu. Hoje maior do que isso, abrangendo tudo o que a Microsoft faz. Em particular, a nova maneira de programar para o Windows. Ela tambm d uma linguagem baseada em C, C#, as ferramentas visuais mais simples que fizeram o Visual Basic to popular. Um pequeno pano de fundo ajudar voc a ver as razes do C# e do .NET. A programao de Internet era tradicionalmente muito difcil em linguagens mais antigas como C e C++. A Sun Microsystems respondeu a esse problema criando a linguagem de programao Java. Para criar o Java, a Sun pegou a gramtica do C++, tornou-a mais amigvel ao usurio e centralizou ao redor de desenvolvimento distribudo.
LEM

E-SE BR

Quando programadores dizem distribudo, eles esto descrevendo computadores dispersos geograficamente rodando programas que se comunicam um com o outro em muitos casos, via Internet. Quando a Microsoft licenciou o Java alguns anos atrs, ele passou por dificuldades legais com a Sun a respeito de mudanas que queria fazer linguagem. Como um resultado, a Microsoft meio que desistiu do Java que comeou a procurar por maneiras de competir com ele. Ser forado para fora do Java foi melhor porque o Java tem um srio problema: apesar de Java ser uma linguagem capaz, voc praticamente tem que escrever seu programa inteiro em Java para obter o benefcio completo. A Microsoft tinha muitos desenvolvedores e muitos milhes de linhas de cdigo fonte existentes, ento a Microsoft tinha que encontrar alguma maneira de suportar mltiplas linguagens. Entra o .NET.

14

Parte I: Comeando com o C#


.NET uma estrutura em muitas maneiras similar s bibliotecas do Java e a linguagem C# altamente similar linguagem Java. Simplesmente enquanto o Java tanto a linguagem por si s e sua extensiva biblioteca de cdigos, o C# realmente muito mais do que apenas as palavras-chave e sintaxe da linguagem C#. daquelas coisas equipadas com uma perfeita biblioteca orientada a objeto contendo milhares de elementos de cdigo que simplificam fazer quase qualquer tipo de programao que voc possa imaginar, de base de dados baseados em Web para criptografia humilde caixa de dilogo Windows. A Microsoft alegaria que o .NET muito superior sute da Sun de ferramentas para Web baseadas em Java, mas este no o ponto. Ao contrrio do Java, o .NET no requer que voc reescreva programas existentes. Um programador de Visual Basic pode adicionar apenas umas poucas linhas para tornar um programa existente compreensvel pela Web (significando que ele saiba como obter dados para fora da Internet). O .NET suporta todas as linguagens comuns da Microsoft e mais de outras 40 linguagens escritas por vendedores de terceiras partes (veja dotnetpowered. com/languages.aspx para a lista mais recente). Entretanto, o C# a linguagem chefe da frota .NET. O C# sempre a primeira linguagem a acessar cada novo atributo do .NET.

O que Visual Studio 2008? E Visual C#?


(Voc certamente deve ser perguntar) A primeira linguagem Visual da Microsoft foi o Visual Basic. A primeira linguagem baseada em C popular da Microsoft foi o Visual C++. Como o Visual Basic, ela era chamada Visual porque tinha uma interface de usurio grfica embutida (GUI - pronunciada gooey). Esta GUI inclua tudo o que voc precisava para desenvolver detalhes minuciosos em programas C++. Eventualmente, a Microsoft moveu todas as suas linguagens para dentro de um nico ambiente: o Visual Studio. Como o Visual Studio 6.0 comeou a ficar velho, desenvolvedores ansiosamente esperaram a Verso 7. Brevemente antes de seu lanamento, entretanto, a Microsoft decidiu renomelo para Visual Studio .NET para destacar seu novo relacionamento com o ambiente .NET. Isso soou como um truque de marketing para mim at que comecei a mergulhar dentro dele. O Visual Studio .NET diferiu bastante dos seus predecessores suficiente para justificar um novo nome. O Visual Studio 2008 a terceira gerao sucessora do original Visual Studio .NET (veja o Captulo Bnus 6 no site da Web para um tour pelos atributos mais potentes do Visual Studio).
LEM

E-SE BR

A Microsoft denomina sua implementao de linguagem Visual C#. Na realidade, o Visual C# no mais do que o componente C# do Visual Studio. C# C#, com ou sem o Visual Studio. OK, isto. Sem mais perguntas (por enquanto, de qualquer maneira).

Captulo 1: Criando seu primeiro aplicativo de console C#

15

Criando Seu Primeiro Aplicativo de Console


O Visual Studio 2008 inclui um Assistente de Aplicativo que constri programas modelo e salva voc de muito trabalho sujo que voc teria que fazer se fizesse tudo a partir do zero (no recomendo a abordagem a partir do zero). Tipicamente, programas iniciadores no fazem realmente nada ao menos, nada de til (soa como a maioria dos meus programas). Entretanto, eles levam voc alm daquele obstculo inicial de comear. Alguns programas iniciadores so razoavelmente sofisticados. De fato, voc ficar impressionado em ver quanta capacidade o Assistente de Aplicativo pode construir por si mesmo, especialmente para programas grficos.
LEM

E-SE BR

As instrues seguintes so para o Visual Studio. Se voc usar qualquer outra coisa que no o Visual Studio, ter que recorrer documentao que veio com seu ambiente. Alternativamente, voc pode simplesmente digitar o cdigo fonte diretamente no seu ambiente C#.Veja a introduo deste livro para algumas alternativas para o Visual Studio.

Criando o programa fonte


Para iniciar o Visual Studio, escolha Iniciar Todos os Programasr Microsoft Visual Studio 2008 Microsoft Visual Studio 2008. Complete estes passos para criar seu aplicativo de console C#: 1. Escolha Arquivo Projeto para criar um novo projeto, como mostrado na Figura 1-1. O Visual Studio apresenta a voc muitos cones representando os diferentes tipos de aplicativos que voc pode criar, como mostrado na Figura 1-2. 2. Desta janela Novo Projeto, clique no cone Aplicativo de Console.
CU

ADO! ID

Assegure que voc selecione Visual C# e, sob ele,Windows no painel Tipos de Projeto; de outra maneira, o Visual Studio pode criar algo horrvel como um aplicativo Visual Basic ou Visual C++. Ento clique no cone Aplicativo de Console no painel Modelos. O Visual Studio requer que voc crie um projeto antes de que possa iniciar a inserir seu programa C#. Um projeto como uma cesta na qual voc joga todos os arquivos que faro seu programa. Quando voc diz ao seu compilador para construir (compilar) o programa, ele seleciona atravs do projeto para encontrar os arquivos necessrios de maneira a recriar o programa executvel.

LEM

E-SE BR

16

Parte I: Comeando com o C#

Figura 1-1: Criar um novo projeto inicia voc na estrada para um melhor aplicativo Windows.

Figura 1-2: O Assistente de Aplicativo do Visual Studio est ansioso para criar um novo programa para voc.

O nome padro para seu primeiro aplicativo ConsoleApplication1, mas mude desta vez para Program1.
D

ICA

O lugar padro para armazenar este arquivo algum lugar profundo no seu diretrio Documentos. Talvez porque eu seja difcil (ou talvez porque estou escrevendo um livro), gosto de colocar meus programas onde quero que eles fiquem, no necessariamente onde o Visual Studio os quer. Para simplificar o trabalho com este livro, voc pode mudar o local padro do programa. Siga estes passos para fazer isso acontecer: a. Escolha Ferramentas Opes Projetos e Solues Geral. b. Selecione o novo local (recomendo C:\C#Programas para este livro) na caixa Local de Projetos Visual Studio e clique em OK. Voc pode criar o novo diretrio na caixa de dilogo Local de Projeto ao mesmo tempo. Clique no cone da pasta com um

Captulo 1: Criando seu primeiro aplicativo de console C#


pequeno raio de sol no topo da caixa de dilogo (o diretrio pode j existir se voc tiver instalado os programas de exemplo do site da Web). Deixe as outras caixas nas configuraes do projeto sozinhas. 3. Clique no boto OK. Aps um pouco de estrondos e sons, o Visual Studio gera um arquivo denominado Program.cs (se voc olhar na janela rotulada Solution Explorer, voc ver alguns outros arquivos; ignore-os por enquanto. Se o Solution Explorer no estiver visvel, escolha Visualizar Solution Explorer). Arquivos fonte C# carregam a extenso .CS. O nome Program o nome padro designado para o arquivo do programa. O contedo do seu primeiro aplicativo de console aparece como segue:
using ... namespace Program1 { class Program { static void Main(string[] args) { }

17

LEM

E-SE BR

Ao longo da janela de cdigo, voc ver vrios pequenos sinais de mais (+) e menos (-) em caixas. Clique no sinal + prximo a using.... Isto expande um campo de cdigo, um til atributo do Visual Studio que controla a massa. Aqui esto as diretivas para quando voc expandir o campo no aplicativo de console padro:
using System; using System.Collections.Generic; using System.Linq; using System.Text;

Campos ajudam voc a focar no cdigo que voc estiver trabalhando, escondendo o cdigo que voc no estiver. Certos blocos de cdigos como o bloco namespace, bloco class, mtodos e outro itens de cdigo obtm um +/- automaticamente sem uma diretiva #region. Voc pode adicionar seus prprios campos dobrveis, se quiser, digitando #region acima de uma seo de cdigo e #endregion aps. Isto ajuda a fornecer um nome para o campo, como em mtodos Pblicos. Aqui est o que este campo de cdigo parece:
#region Public methods ... your code #endregion Public methods

LEM

E-SE BR

Este nome inclui espaos. Tambm, voc pode aninhar um campo dentro de outro, mas campos no podem sobrepor.

18

Parte I: Comeando com o C#


Por enquanto, uso de Sistema; a nica diretiva de uso que voc realmente precisa.Voc pode deletar as outras; o compilador deixa voc saber se estiver faltando uma.

Levando para um test drive


Para converter seu programa C# em um programa executvel, escolha Construir Construir Program1. O Visual Studio responde com a seguinte mensagem:
- Build started: Project: Program1, Configuration: Debug Any CPU Csc.exe /noconfig /nowarn ... (e muito mais) Compile complete -- 0 errors, 0 warnings failed, 0 skipped==

Program1 -> C:\C#Programs\ ... (e mais)==Build: 1 succeeded or up-to-date, 0

ICA

O ponto chave aqui a parte 1 succeeded na ltima linha. Como uma regra geral de programao, succeeded bom; failed ruim. Para executar o programa, escolha Depurar Iniciar. O programa traz uma janela de console preta e termina imediatamente. O programa aparentemente no fez nada. De fato, este o caso. O modelo nada mais do que uma concha vazia. Um comando alternativo, Depurar Iniciar Sem Depurar, se comporta um pouco melhor neste ponto. Tente.

ICA

Fazendo seu aplicativo de console fazer algo


Edite o arquivo modelo Program.cs at que parea com o seguinte:
using System; namespace Program1 { public class Program { // Aqui onde seu programa tem incio. static void Main(string[] args) {

// Prompt para o usurio inserir um nome.

Console.WriteLine(Enter your name, please:); // Agora leia o nome inserido.

string name = Console.ReadLine();

Captulo 1: Criando seu primeiro aplicativo de console C#


// Salde o usurio com o nome que foi inserido. Console.WriteLine(Hello, + name);

19

// Espere pela confirmao dos resultados pelo usurio. Console.WriteLine(Press Enter to terminate...); } Console.Read();

ICA

No se preocupe com as coisas seguindo barras duplas ou triplas (// ou ///) e no se preocupe em inserir um ou dois espaos ou uma ou duas novas linhas. Entretanto, preste ateno s maisculas e minsculas. Escolha Construir Construir Program1 para converter esta nova verso do Program.cs no programa Program1.exe. De dentro do Visual Studio 2008, escolha Depurador Iniciar Sem Depurar. A janela de console preta do prompt aparece e pede pelo seu nome (voc pode precisar ativar a janela de console clicando nela). Ento a janela mostra Ol, seguida pelo nome inserido e exibe Pressione Enter para terminar.... Pressionar Enter fecha a janela. Voc pode tambm executar o programa a partir da linha de comando DOS. Para fazer isto, abra uma janela de Prompt de Comando e insira o seguinte:
CD \C#Programs\Program1\bin\Debug

Agora insira Program1 para executar o programa. O emissor deve ser idntico ao que voc viu antes.Voc pode tambm navegar na pasta \C#Programs\Program1\bin\Debug no Windows Explorer e ento dar duplo clique no arquivo Program1.exe.
D

ICA

Para abrir uma janela de Prompt de Comando, tente escolher Ferramentas Prompt de Comando. Se esse comando no estiver disponvel no seu menu Ferramentas do Visual Studio, escolha Iniciar Todos os Programas Microsoft Visual Studio 2008 Ferramentas do Visual Studio Prompt de Comando do Visual Studio 2008.

Revisando seu aplicativo de console


Nas sees seguintes, voc desmontar este primeiro aplicativo de console C# uma seo por vez para entender como ele funciona.

A estrutura do programa
A estrutura bsica para todos os aplicativos de console inicia como segue:
using System; using System.Collections.Generic; using System.Linq; using System.Text;

20

Parte I: Comeando com o C#


namespace Program1 { public class Program { // Aqui onde seu programa inicia.

public static void Main(string[] args) { } // Seu cdigo vai aqui.

O programa inicia a execuo logo aps o enunciado contendo Main ( ) e termina nas chaves fechadas que seguem o Main ( ) (explicarei o significado destes enunciados no tempo devido. Mais do que isso no posso dizer por enquanto).
LEM

E-SE BR

A lista de diretivas using vm imediatamente antes ou imediatamente depois da frase namespace Program1 {. A ordem no importa.Voc pode aplicar using em muitas coisas no .NET. O assunto inteiro sobre grupo de nomes e using explicado no Captulo Bnus 1 no site da Web.

Comentrios
O modelo j tem muitas linhas, e adicionei vrias outras linhas, como as seguintes (em negrito):
// Aqui onde o programa inicia. public static void Main(string[] args)

O C# ignora a primeira linha neste exemplo. Esta linha conhecida como um comentrio. Qualquer linha que comece com // ou /// texto livre e ignorado pelo C#. Considere // e /// equivalentes por enquanto. Por que incluir linhas se o computador as ignora? Porque comentrios explicam seus enunciados C#. Um programa, at mesmo em C#, no fcil de entender. Lembre que uma linguagem de programao um acordo entre o que computadores entendem e o que humanos entendem. Estes comentrios so teis enquanto voc escreve o cdigo e so especialmente teis para o pobre tolo possivelmente voc que tentar recriar sua lgica um ano depois. Comentrios tornam o trabalho muito mais fcil. Comente cedo e freqentemente.

ICA

A essncia do programa
O ncleo real deste programa encrustado dentro do bloco de cdigo marcado com Main ( ), como segue:

Captulo 1: Criando seu primeiro aplicativo de console C#


// Prompt para o usurio inserir um nome. Console.WriteLine(Enter your name, please:); // Agora leia o nome inserido.

21

string name = Console.ReadLine(); // Salde o usurio com o nome que foi inserido. Console.WriteLine(Hello, + name);

ICA

Economize uma tonelada de digitao de rotina com o novo atributo Fragmentos de Cdigo C#. Fragmentos so timos para enunciados comuns como Console.WriteLine. Pressione Ctrl+K e ento Ctrl+X para ver um menu pop-up de fragmentos (voc pode precisar pressionar Tab uma ou duas vezes para abrir a pasta Visual C# ou outras pastas nesse menu). Role o menu para baixo para cw e pressione Enter. O Visual Studio insere o corpo de um enunciado Console.WriteLine( ) com o ponto de insero entre os parnteses, pronto. Quando voc tiver alguns dos atalhos como cw, for e if memorizados, use a tcnica ainda mais rpida: Digite cw e pressione Tab duas vezes (tambm tente selecionar algumas linhas de cdigo, pressionando Ctrl+K, e ento pressionando Ctrl+S. Escolha algo como if. Um enunciado if cerca as linhas de cdigo selecionadas). O programa inicia a execuo com o primeiro enunciado C#: Console.WriteLine. Este comando escreve a seqncia de caracteres Insira seu nome, por favor: para o console. O enunciado seguinte l a resposta do usurio e armazena em uma varivel (um tipo de caixa de costura) denominada name (veja o Captulo 2 para mais sobre esses locais de armazenamento). A ltima linha combina a seqncia Ol com o nome do usurio e emite o resultado para o console. As trs linhas finais fazem o computador esperar que o usurio pressione Enter antes de proceder. Essas linhas asseguram que o usurio tenha tempo de ler o emissor antes que o programa continue, como segue:
// Espere pela confirmao dos resultados pelo usurio. Console.WriteLine(Press Enter to terminate...); Console.Read();

Este passo pode ser importante, dependendo de como voc executa o programa e dependendo do ambiente. Em particular, rodar seu aplicativo de console dentro do Visual Studio, ou a partir do Windows Explorer, torna as linhas acima necessrias de outra maneira, a janela de console fecha to rpido que voc no consegue ler o emissor. Se voc abrir uma janela de console e rodar o programa dali, a janela fica aberta de qualquer jeito.

Introduzindo o truque da caixa de ferramentas


Na verdade, a parte chave do programa que voc criou na seo precedente so as duas linhas finais de cdigo:

22

Parte I: Comeando com o C#


// Espere pela confirmao dos resultados pelo usurio. Console.WriteLine(Press Enter to terminate...); Console.Read();

A maneira mais fcil de restaurar essas linhas chave em um futuro aplicativo de console que voc escrever como segue.

Salvando cdigo na Caixa de Ferramentas


O primeiro passo salvar essas linhas em um local cmodo para uso futuro em lugar cmodo: a janela Caixa de Ferramentas. Com seu aplicativo de console Program1 aberto no Visual Studio, siga estes passos: 1. No mtodo Main ( ) da classe Program1, selecione as linhas que voc quer salvar neste caso, as linhas acima. 2. Assegure-se de que a janela Caixa de Ferramentas esteja aberta (se no estiver, abra-a escolhendo Visualizar Caixa de Ferramentas). 3. Arraste as linhas selecionadas para dentro da aba Geral da janela Caixa de Ferramentas e deixe-as (ou copie as linhas e cole-as dentro da Caixa de Ferramentas). A Caixa de Ferramentas armazena as linhas l para voc perpetuamente. A Figura 1-3 mostra as linhas colocadas na Caixa de Ferramentas.

Reutilizando cdigo da Caixa de Ferramentas


Agora que voc tem seu texto modelo armazenado na Caixa de Ferramentas, voc pode reutiliz-lo em todos os aplicativos de console que voc escrever daqui para frente. Aqui est como us-lo: 1. No Visual Studio, crie um novo aplicativo de console conforme descrito anteriormente neste captulo. 2. Clique no editor no ponto onde voc gostaria de inserir algum texto da Caixa de Ferramentas. 3. Com o arquivo Program.cs aberto para edio, assegure-se de que a janela Caixa de Ferramentas esteja aberta (se no estiver, veja o procedimento acima). 4. Na aba Geral da janela Caixa de Ferramentas (outras abas podem estar aparecendo), encontre o texto salvo que voc quer usar e d um duplo clique nele.

Captulo 1: Criando seu primeiro aplicativo de console C#


O item selecionado inserido no ponto de insero na janela do editor. Com esse texto formulado no lugar, voc pode escrever o restante do seu aplicativo acima dessas linhas. isto. Voc agora tem um aplicativo de console finalizado. Teste-o por, digamos, 30 segundos. Ento v para o Captulo 2.

23

Figura 1-3: Configurando a Caixa de Ferramentas com algum texto salvo til para uso futuro.

24

Parte I: Comeando com o C#

Você também pode gostar