Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Introduo
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).
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.
Introduo
e inclui um novo captulo explicando classes de coleo do C# em detalhes, incluindo a nova classe HashSet.
ICA
LEM
E-SE BR
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#.
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.
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
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.
11
Captulo 1
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#.
12
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
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
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).
15
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.
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
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
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
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
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.
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
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:
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.
22
A maneira mais fcil de restaurar essas linhas chave em um futuro aplicativo de console que voc escrever como segue.
23
Figura 1-3: Configurando a Caixa de Ferramentas com algum texto salvo til para uso futuro.
24