Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

PROGRAMAÇÃO APLICADA 
MICROSOFT .NET USANDO C# 
EDIÇÃO Nº 1 - 2007 
 
 
 
 
 
 
 
 
 
LAÉRCIO DA CRUZ LOUREIRO 
___________________________________________________________________ 
Apoio Gestão e Execução Conteúdo e Tecnologia 
 
 
Programação Aplicada – Microsoft .NET usando C# 2 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Apresentação 
 
 
 
Este livro didático contém a disciplina de Programação Aplicada com 
Microsoft .NET. 
O conteúdo apresentado oferece um amplo conjunto de informações sobre os 
métodos de programação, que foram apresentados nos cursos anteriores, e agora 
serão aplicados a uma tecnologia particular. 
A programação para o sistema operacional Windows é favorecida com o uso 
do Microsoft .NET (fala-se “dót net” ou “ponto net”) e o objetivo deste curso é 
apresentar os conceitos disponíveis nesta plataforma de desenvolvimento, 
permitindo ao aluno construir sistemas usando uma das principais linguagens 
utilizadas em .NET: a C# (fala-se “cê charp”). 
 É um assunto extremamente atual, principalmente diante do grande volume 
de empresas desenvolvedoras de software, que estão aderindo à plataforma .NET. 
Por isso, procuramos manter um conteúdo alinhado com as necessidades do 
mercado, seguindo informações que foram coletadas com empresas de mercado. 
Além disso, o conteúdo segue as orientações e práticas que são sugeridas pela 
Microsoft, através de seus sites, livros e artigos. 
Diante disso, estamos apresentando uma abordagem adequada para os 
desafios que o programador precisa superar, utilizando-se como apoio as 
tecnologias envolvidas com a plataforma .NET, e também buscamos manter uma 
linguagem acessível para programadores iniciantes e que precisam entender com 
segurança os tópicos que compõem os assuntos tratados. 
É importante ressaltar que o livro foi desenvolvido com o objetivo de oferecer 
um aprendizado independente, inerente aos estudos do EAD, e o conteúdo foi 
revisado com o intuito de oferecer uma linguagem simples, objetiva e estimulante. 
Lembre-se de que a sua passagem por esta disciplina será também 
acompanhada pelo Sistema de Ensino Tupy Virtual, seja por correio postal, fax, 
telefone, e-mail ou Ambiente Virtual de Aprendizagem. 
Programação Aplicada – Microsoft .NET usando C# 3 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Sempre entre em contato conosco quando surgir alguma dúvida ou 
dificuldade. 
 Toda a equipe terá a maior alegria em atendê-lo, pois a sua aquisição de 
conhecimento nessa jornada é o nosso maior objetivo. 
Acredite no seu sucesso e bons momentos de estudo! 
Equipe Tupy Virtual. 
Programação Aplicada – Microsoft .NET usando C# 4 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
SUMÁRIO 
 
CARTA DO PROFESSOR......................................................................................... 5 
CRONOGRAMA DE ESTUDOS ............................................................................... 7 
PLANO DE ESTUDOS ............................................................................................. 8 
AULA 1 - INTRODUÇÃO À PLATAFORMA .NET…………………………………….. 9 
AULA 2 - VISUAL STUDIO EXPRESS………………………………………………… 26 
AULA 3 - TRABALHANDO COM VARIÁVEIS EM C#............................................. 47 
AULA 4 - CONTROLE DE FLUXO EM C#............................................................... 65 
AULA 5 - PROGRAMAÇÃO ORIENTADA A OBJETOS EM C#............................. 76 
AULA 6 - TÉCNICAS DE OOP USANDO C#........................................................... 88 
AULA 7 - APLICAÇÕES WINDOWS FORMS……………………………………….. 104 
AULA 8 - BANCO DE DADOS COM C# ……………………………………………... 132 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 5 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Carta do Professor 
 
 
“A transição para a .NET é tão dramática quanto o movimento 
de transição do MS-DOS para Windows. Os programadores são 
fundamentais para este esforço, porque eles irão construir as 
soluções que irão guiar os usuários para uma nova era da 
verdadeira computação distribuída na Internet. ” 
(Bill Gates no lançamento da Plataforma .NET, 2000). 
 
Prezado aluno, 
 
 Em 2000, a Microsoft lançou uma iniciativa para a criação de uma nova 
geração de sistemas, a qual iria unificar a computação com a comunicação de dados 
através de um caminho revolucionário. Foi a divulgação de uma visão, como a 
fabricante procura reforçar. 
 Na verdade, a Microsoft demorou para aderir à “onda” que a Internet na época 
estava gerando, principalmente no impacto cultural que os usuários de 
computadores estavam percebendo. Quando a Microsoft lançou o Windows 95 e o 
Internet Explorer, sistema operacional e navegador respectivamente, foi o primeiro 
passo no sentido de uma resposta direcionada para as empresas que, na época, 
estavam liderando a “onda” da Internet. Naquele período, a Netscape era a grande 
alavanca para uma nova experiência dos usuários no uso da Internet, e ela até hoje 
é reconhecida como a precursora das tecnologias que usamos na atualidade. 
 Após esse período, a Internet nunca mais deixou de ser uma “arena” de 
constantes inovações e grandes competições, onde os fabricantes de software 
buscam cada vez mais determinar e conduzir as oportunidades de negócios que a 
“grande rede” oferece. 
 O mundo atual é um lugar diferente do que há 10 anos atrás. Segundo 
Friedman (2005), a partir do ano 2000, os fabricantes de software engendraram 
plataformas com base nas quais o trabalho e o capital intelectuais poderiam ser 
realizados de qualquer parte do globo. Tornou-se possível fragmentar projetos e 
transmitir, distribuir, produzir e juntar de novo as suas peças, usando a mesma 
Programação Aplicada – Microsoft .NET usando C# 6 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
abordagem da componentização de processos industriais baseados nos modelos de 
Ford e da Toyota. 
 É neste contexto que a plataforma .NET nasce. É a proposta da Microsoft 
para suportar a dinâmica que os complexos processos de negócios estavam 
empregando e exigindo um nível de componentização dos sistemas, completamente 
baseados na Internet. 
 Nesta apostila, procuro apresentar-lhe os fundamentos desta iniciativa, com 
ênfase no desenvolvimento de sistemas baseados em .NET usando a linguagem C#, 
que também foi lançada pela Microsoft, em 2002, junto com a nova versão do 
software para desenvolvedores, chamada Visual Studio .NET. 
 Cabe ressaltar que a linguagem C# também foi um movimento de resposta da 
Microsoft que, utilizando-se de todas as propostas tecnológicas da plataforma .NET, 
baseou-se na sintaxe da Linguagem C, da C++ e do Java, para competir com o 
próprio Java, diante de sua ampla adesão pelos desenvolvedores. Ela também 
oferece suporte completo à programação orientada a objetos e recursos para a 
construção de sistemas para a Internet, de forma segura, rápida e poderosa. 
 Observe que é um assunto extenso. Este módulo tem por finalidade lhe 
oferecer fundamentos para construir sistemas, sem contudo esgotar o assunto. 
Leia. Pratique. Exercite. Reflita. Discuta com seus colegas. Corrija. E renove. 
Mantenha estas atividades como parte de seus trabalhos neste curso. Permanece 
aqui a recomendação de que a programação de computadores é uma tarefa que 
exije dedicação e muita prática. 
Finalmente, reitero minha expectativa em apoiar você em mais um passo de 
seu conhecimento no desenvolvimento de software. Mantenha-se motivado a 
continuar seus estudos, pois, à medida que os tópicos são revelados, um mundo 
novo de oportunidades abre-se para você. 
Desejo-lhe bons estudos e aproveite esta oportunidade.Professor Laércio da Cruz Loureiro 
Programação Aplicada – Microsoft .NET usando C# 7 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Cronograma de Estudos 
 
 
Acompanhe no cronograma abaixo os conteúdos das aulas, e atualize as 
possíveis datas de realização de aprendizagem e avaliações. 
Semana Carga horária Aula Data / Avaliação 
 
1 
 
20 
 
 
Introdução à Plataforma 
Microsoft .NET 
_/_ a _/_ 
 
 
 
14 
 
 
Visual Studio Express 
 
_/_ a _/_ 
 
2 
 
14 
 
 
Trabalhando com Variáveis 
em C# 
 
_/_ a _/_ 
 
 
 
10 
 
 
Controle de Fluxo em C# 
 
 
_/_ a _/_ 
 
3 
 
 
12 
 
 
Introdução OOP usando C# 
 
_/_ a _/_ 
 
 
 
 
12 
 
Técnicas de OOP usando 
C# 
 
_/_ a _/_ 
 
 
4 
 
22 
 
 
Aplicações Windows Forms 
 
 
_/_ a _/_ 
 
6 
 
 
16 
 
Banco de Dados com C# 
 
_/_ a _/_ 
 
 
Programação Aplicada – Microsoft .NET usando C# 8 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Plano de Estudos 
 
Ementa 
 
 
Introdução à plataforma Microsoft .NET. Visual Studio Express. Orientação a 
objetos usando C#. Sintaxe da linguagem C#. Desenvolvimento de sistemas usando 
banco de dados. Soluções usando ASP.NET 
 
Objetivo Geral 
• Entender as vantagens do uso da plataforma Microsoft .NET e desenvolver 
sistemas usando a linguagem C#. 
 
Específicos 
• Descrever os componentes da plataforma .NET; 
• Construir programas orientados a objetos usando a linguagem C#; 
• Conhecer e desenvolver programas usando a sintaxe de comandos da 
linguagem C#; 
• Utilizar recursos de banco de dados em sistemas .NET; 
• Conhecer os elementos básicos para a construção de sistemas para a 
Internet usando a plataforma .NET. 
 
 Carga Horária: 120 horas/aula.
Programação Aplicada – Microsoft .NET usando C# 9 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 1 
INTRODUÇÃO À PLATAFORMA .NET 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Identificar os objetivos da plataforma .NET; 
� Enumerar as vantagens na utilização da plataforma .NET; 
� Descrever os componentes da plataforma .NET; 
� Utilizar linguagens disponíveis baseadas em .NET. 
 
Conteúdos da aula 
 
Acompanhe os assuntos desta aula, se preferir, após o 
seu término, assinale o conteúdo já estudado. 
� A Internet e as aplicações distribuídas; 
� A evolução tecnológica; 
� Ilhas de informações; 
� Reuso, OOP e Web Services; 
� O que é a plataforma .NET? 
� Componentes da plataforma; 
� .NET Framework; 
� As linguagens para .NET 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 10 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Prezado(a) aluno(a)! 
Muitos fatores influenciaram a criação da plataforma .NET. O mais 
relevante, com certeza, foi a Internet. O uso cada vez maior da Internet 
para realizar novas formas de negócios, bem como, a transformação de métodos 
atuais de negócios, em outros métodos através da Internet, impulsionam inovações 
no segmento de desenvolvimento de software. 
 Além disso, como segundo elemento forte que influenciou o surgimento do 
.NET foi a convergência digital. Basicamente, esse tema refere-se à união do 
telefone, do computador, da TV, do rádio, da música, do celular e outras tecnologias, 
um único dispositivo. A convergência digital exige dos sistemas atuais recursos 
como multiplataforma, escalabilidade, suporte a múltiplos idiomas, alta capacidade 
de processamento de dados, etc., ou seja, as tecnologias devem suportar novas 
formas para construir sistemas. 
 Nesta aula, você conhecerá os vários aspectos que envolvem a plataforma 
.NET, incluindo seus componentes, aspectos de negócios que a influenciaram e 
suas aplicações, além de compreender as várias alternativas disponíveis para seu 
uso. 
Boa Aula! 
 
 
1 A INTERNET E AS APLICAÇÕES DISTRIBUÍDAS 
 
Fatores como a globalização e as constantes mudanças nas regras de 
negócios obrigaram as empresas modernas a se tornarem altamente distribuídas. 
Como conseqüência, é crescente o número de escritórios remotos espalhados no 
país ou no mundo. Por isso, proporcionalmente a novos modelos de negócios e 
gestão, as empresas necessitam de informações e tecnologias que estejam 
disponibilizadas aos seus funcionários em escritórios remotos, hotéis e residências, 
e que às vezes estão conectados ou não, trabalhando em condições off-line. 
As aplicações distribuídas oferecem os recursos necessários para atender às 
demandas atuais das empresas, aderindo aos movimentos de descentralização e 
reduzindo as possíveis dificuldades de comunicação que naturalmente podem 
ocorrer. 
Programação Aplicada – Microsoft .NET usando C# 11 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Quando falamos em aplicações distribuídas, precisamos considerar três 
elementos essenciais: comunicação de dados, interface com o usuário e regras de 
negócios flexíveis. 
A comunicação de dados uniforme foi resolvida com a Internet, 
considerando que, por um meio comum de comunicação, o protocolo TCP/IP, 
usuários e empresas podem comunicar-se independente das particularidades de 
seus dispositivos de hardware ou software (figura 1). Atualmente, a independência 
de equipamentos físicos é ainda mais favorecida por padrões que estão suportando 
a convergência digital, permitindo que um celular possua recursos para a execução 
de um sistema, enquanto mantém seus princípios básicos. 
 
 
Figura 1 – Exemplo de Comunicação de Dados baseada na Internet 
 
A interface com o usuário também foi resolvida com a Internet, pois todo 
usuário utiliza um mesmo software, o navegador. Além disso, o navegador possui 
padrões de apresentação de dados que são aceitos mundialmente, o que também 
permite uma mesma página ser visualizada independente de dispositivo físico ou 
software. A HTML, as linguagens scripts, as imagens, etc. compõem a apresentação 
de dados,e também permitem a interação com o usuário, através de formulários, 
com possibilidade de preenchimento de dados. Confira na figura 2 o que acabamos 
de explanar. 
Programação Aplicada – Microsoft .NET usando C# 12 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 2 – Exemplo de formulário em HTML para a Internet 
 
O que faltava na Internet era um modelo de programação de sistemas, 
utilizando-se das tecnologias mais atuais disponíveis, com o objetivo de construir 
sistemas flexíveis e robustos baseados na Internet, explorando os padrões que já 
foram estabelecidos pela “grande rede”. Assim, surgiram os conceitos de Aplicações 
Distribuídas baseadas na Internet, fazendo com que os sistemas sejam 
“particionados” em várias camadas e cada camada seja processada de forma 
distribuída entre vários elementos da solução. Além disso, a adoção de efetivas 
técnicas de programação orientada a objetos (OOP), permitiu a construção de 
sistemas flexíveis, com capacidade de adaptação dinâmica das regras de negócios 
(figura 3). 
 
 
Figura 3 – Exemplo de uma aplicação distribuída na Web 
 
 
Programação Aplicada – Microsoft .NET usando C# 13 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
2 A EVOLUÇÃO TECNOLÓGICA 
 
Um outro conjunto de elementos deve ser considerado como parte da 
necessidade que a plataforma .NET desejava atender em seu lançamento e 
atualmente fornece as capacidades para sua realização. 
Por exemplo, a evolução tecnológica dos microprocessadores e dos circuitos 
de memória RAM, que estão cada vez mais poderosos e baratos, permitiram que 
poderosas funcionalidades fossem construídas. Além disso,sua capacidade de 
atendimento a grande volume de transações e dados, ao contrário do que podia se 
esperar, não houve a necessidade de um alto investimento em hardware. 
O aumento na disponibilidade da largura de banda nas conexões para a 
Internet, com preços baixos, também viabilizou uma infra-estrutura que permite 
maior riqueza nas aplicações distribuídas e mantém um nível de performance 
necessário para os usuários. Como exemplo, podemos citar a popularização das 
conexões com a Internet usando a tecnologia ADSL. 
Os sistemas operacionais também fornecem recursos importantes para as 
aplicações distribuídas, já que novos aplicativos transacionais, com recursos de 
segurança integrados e otimizações para atender determinadas funcionalidades, 
favorecem a uma performance e construção dos sistemas. 
Finalmente, padrões tecnológicos como a linguagem XML, protocolos que 
constituem os Web Services e novas versões da linguagem HTML, permitiram 
aplicações distribuídas flexíveis, ricas e padronizadas. 
 
3 ILHAS DE INFORMAÇÕES 
 
A Microsoft percebeu que um grande volume de informações e usuários vive 
de forma independente em uma empresa, criando “ilhas de informações” 
corporativas e não interagem entre si, perdendo oportunidades para aumentar a 
velocidade das transações do negócio ou para auxiliar na formação de uma 
inteligência competitiva. 
Diante disso, através da plataforma .NET e utilizando-se de padrões de 
mercado, abordam-se os conceitos de integração de dados e interoperabilidade 
de aplicações, ou seja, disponibilizam-se componentes programados que permitam 
a sua integração e forneçam meios fáceis para um relacionamento interdependente. 
Programação Aplicada – Microsoft .NET usando C# 14 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Podemos considerar nesse contexto, um exemplo clássico nas 
aplicações em geral: o uso de listagem e verificação de CEP, para um 
determinado cadastro. Na grande maioria dos sistemas administrativos, 
temos um cadastro de clientes e, por padrão, temos um campo de armazenamento 
de dados do CEP. A questão que o usuário apresenta: como posso validar a 
existêcia do CEP digitado, para garantir que os envios de correspondências de 
cobrança cheguem com sucesso ao seu destino? 
No passado, a grande maioria dos programadores criava (ou ainda cria, por falta de 
conhecimento, ou limite da tecnologia envolvida) um cadastro de CEP na sua 
aplicação, para o usuário armazenar os endereçamentos de CEP disponíveis em 
uma lista pública dos Correios Brasileiros. Problemas com esse tipo de solução: 
• O usuário precisa realizar um grande esforço para armazenar todos os 
endereços de CEP na aplicação; 
• A dificuldade em manter o cadastro atualizado, devido a possíveis mudanças que 
os Correios Brasileiros aplicam no Código de Endereçamento Postal. 
Imagine, uma agência dos Correios possui a lista completa de endereços de CEP de 
todo o Brasil e os recursos necessários para mantê-la 100% atualizada. 
Temos então, nesse cenário, as ilhas de informações, onde uma empresa precisa 
“duplicar” os dados de CEP para que se consiga atingir os requisitos de seu negócio. 
Enquanto isso, as agências do Correios possuem todas as informações atualizadas. 
Hoje, esse problema está resolvido, pois os Correios Brasileiros “publicaram” um 
serviço que permite uma “aplicação” baseada em componentes distribuídos, 
podendo coletar informações de CEP, de acordo com parâmetros documentados. 
Esse serviço publicado na Internet, na forma de componente de aplicação, chama-se 
Web Service. 
 
 
 
 
 
4 OOP, REUSO E WEB SERVICES 
 
Programação Aplicada – Microsoft .NET usando C# 15 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 O uso da programação orientada a objetos, conforme você já aprendeu, 
permite a reutilização de procedimentos e rotinas de um determinado sistema, de 
forma elegante e segura, ou seja, podemos reutilizar código de programação como 
parte de nosso esforço de construção do programa. Nesse conceito de reuso, surgiu 
a tecnologia chamada de Web Service. 
 Um Web Service é uma solução para a integração de soluções de software, 
utilizando-se de padrões estabelecidos mundialmente, cuja finalidade é sua 
publicação na Internet para reuso. O formato dos dados que são trafegados entre os 
Web Services, estão em XML (eXtensible Markup Language) e o protocolo de 
comunicação entre os componentes de uma solução é o SOAP. Podemos então 
resumir que um Web Service é um componente programável que pode ser acessado 
através de protocolos padrões na Internet. 
 A plataforma .NET utiliza largamente os recursos de Web Services, como 
base de sua arquitetura para suportar aplicações distribuídas. 
 Com base na tecnologia da Web Services, surgiu uma nova abordagem na 
construção de software: o software orientado a serviços. Essa orientação é uma 
forma de construção de sistemas, cujo principal objetivo é o reuso através de Web 
Services internos e externos na empresa, mantendo padrões abertos para permitir a 
integração de diferentes plataformas e tecnologias. A esse novo método de 
engenharia de software aplicou-se o termo SOA (Service Oriented Architecture), em 
português, Arquitetura Orientada a Serviços (figura 4). 
 
 
Figura 4 – Exemplo da comunicação usando SOA 
 
 Conforme definiu Earl (2005), a orientação a serviços fornece uma visão ideal 
do mundo, no qual os recursos são claramente particionados e consistentemente 
representados. Quando aplicada em software, a orientação a serviços estabelece 
um modelo universal no qual a automação da lógica e as regras de negócios estão 
de acordo com essa visão. 
Programação Aplicada – Microsoft .NET usando C# 16 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Para que você possa entender melhor esse conceito, vamos considerar 
a construção de um sistema que possui um conjunto de sub-rotinas. 
Como você já aprendeu, a modularização do código na programação 
estruturada e o uso de classes na programação orientada a objetos fornecem o 
meio para um programa “particionado”, com isso, permite um reuso de 
funcionalidades. Cada função, sub-rotina ou classe, pode ser “traduzida” em um 
Web Service e pode ser publicada para uso nas diversas aplicações que a utilizam. 
A grande diferença é que você retira o código de programação do seu sistema e o 
Web Service pode ter vida própria, com manutenções e melhorias independentes do 
programa que a utiliza. Observe a figura 5. 
 
 
Figura 5 – Possibilidades de conversão de rotinas orientadas a serviços 
 
 
 
 
 
5 O QUE É A PLATAFORMA .NET? 
 
FONTE: adaptado de Earl, 2005 
Programação Aplicada – Microsoft .NET usando C# 17 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Os tópicos apresentados até o momento nos fornecem os elementos que 
influenciaram a Microsoft na construção da plataforma .NET. Então, o que é a 
plataforma .NET? 
 A .NET é uma iniciativa da Microsoft para suportar uma estratégia no uso de 
Web Services usando um conjunto integrado de tecnologias e soluções, com o 
objetivo de fornecer uma abordagem completa e coesa de disponibilização de 
soluções para as empresas. 
 Segundo Platt (2003), a .NET é uma infra-estrutura pré-construída para 
resolver problemas das aplicações para a Internet. O autor defende que é somente 
um grande conjunto de tecnologias e nada mais. Porém, a Microsoft procura afirmar 
que a .NET oferece um grande avanço na forma como as pessoas trabalham e por 
isso, a fabricante de software acredita que há uma proposta de mudança no 
paradigma de como os negócios são conduzidos usando .NET. 
 
6 COMPONENTES DA PLATAFORMA 
 
 A Microsoft distribuiu as várias funcionalidades da plataforma .NET em 
componentes. Cada componente possui características particulares,finalidades 
específicas e total integração entre eles. Vamos conhecer cada um deles: 
• Ambiente de execução de aplicações, .NET Framework: é um conjunto 
de recursos instalados no computador, com o objetivo de permitir a 
execução de programas construídos para .NET. Seu principal objetivo é 
fornecer ao programador bibliotecas de classes para reuso, a execução 
controlada e administrada de programas e facilidades para a 
disponibilização da solução construída. Os programas e seus 
componentes são executados sobre o .NET Framework; 
• Conjunto de serviços utilizando uma infra-estrutura de software 
servidores: a Microsoft reuniu todos os seus produtos utilizados como 
software servidores e estabeleceu total compatibilidade dos serviços de 
cada um desses produtos, com a plataforma .NET. A esse conjunto de 
produtos batizou-se “Windows Server System”; 
• .NET Building Blocks: são representados por um conjunto de serviços 
pré-construídos para acelerar o processo de construção de sistemas. O 
exemplo mais comum é o Microsoft Passport (agora também conhecido 
Programação Aplicada – Microsoft .NET usando C# 18 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
como Windows Live ID - figura 6), que fornece serviços de autenticação 
de usuários e que pode ser utilizado na construção de sistemas, liberando 
o programador do trabalho de construir uma rotina específica para a 
autenticação de usuários; 
 
 
Figura 6 – Página do Windows Live ID 
 
• Visual Studio .NET: é a ferramenta fornecida pela Microsoft para a 
construção de sistemas para a plataforma .NET. Com esse produto, o 
programador cria seus programas e se utiliza de todas as potencialidades 
do .NET. 
 Cada um dos componentes da plataforma .NET possui um grande conjunto 
de tecnologias e subcomponentes e a cada um estão sendo aprimorados e 
agregados novos recursos e funcionalidades. O componente principal da plataforma 
é o .NET Framework, já que é por ele que todos os demais componentes interagem 
e funcionam. 
 Outro aspecto relevante da plataforma é que todos os seus componentes 
estão construídos para oferecer e consumir padrões de tecnologia baseados na 
Internet, ou seja, todos os elementos influenciadores que vimos nos tópicos 
Programação Aplicada – Microsoft .NET usando C# 19 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
anteriores, foram implementados logicamente pela Microsoft. É a resposta da 
Microsoft para o desenvolvimento de sistemas distribuídos baseados na Internet. 
 Para que você tenha uma visão mais clara dos componentes da plataforma, 
observe a figura 7. 
 
 
Figura 7 – Componentes da Plataforma .NET 
 
 
 
 
7 .NET FRAMEWORK 
 
 Considerando sua importância na plataforma, o .NET Framework merece um 
tópico particular para seu melhor entendimento. Ele, na verdade, é um software 
“acoplado” ao sistema operacional, com o objetivo de executar aplicações para a 
plataforma .NET. 
 
Cabe aqui uma observação importante e polêmica: a compatibilidade do 
.NET Framework com sistemas operacionais. Na prática, a Microsoft 
criou o produto para ser “acoplado” apenas em seus sistemas 
operacionais e suas versões (Windows XP, Windows 2000, Windows 2003 e etc.). 
Dessa forma, os aplicativos construídos para .NET somente podem ser executados 
em equipamentos que tenham instalado um sistema operacional da Microsoft. Esse 
assunto é polêmico, porque a plataforma concorrente é o Java da Sun, que oferece 
um completo suporte a vários sistemas operacionais de mercado, incluindo 
FONTE: adaptado da Microsoft - MOC, 2001 
Programação Aplicada – Microsoft .NET usando C# 20 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
logicamente o Linux. Perceba então que temos aqui um aspecto de competição de 
mercado entre os fabricantes de software: de um lado a Microsoft, procurando 
fortalecer ainda mais sua base Windows instalada, do outro a Sun, oferecendo um 
nível de flexilidade que permite ao programador escolher ou adaptar-se ao sistema 
operacional de destino, sem amarras. 
Mas existem iniciativas não patrocinadas oficialmente pela Microsoft, para a 
execução de programas .NET em outros sistemas operacionais. O projeto MONO é 
uma iniciativa da comunidade de desenvolvedores para a construção de uma versão 
baseada em GNU/Linux, como software livre, da plataforma .NET. 
Para maiores informações sobre o projeto, acesse o seguinte endereço na Internet: 
http://www.mono-project.com/Main_Page. 
 
 O .NET Framework é organizado em subcomponentes (figura 8) que, juntos, 
oferecem ampla camada de desenvolvimento e reuso de aplicações, utilizando-se de 
conceitos de integração e interdepependência. 
 
Figura 8 – Componentes da Plataforma .NET 
 
 
 
 
7.1 Código Gerenciado 
 O principal subcomponente do .NET Framework é o conceito de código 
gerenciado, construído pelo programador e executado em um ambiente chamado 
Common Language Runtime (CLR) (figura 9). Esse ambiente interfere na 
FONTE: adaptado da Microsoft - MOC, 2001 
alison.veríssimo
Realce
Programação Aplicada – Microsoft .NET usando C# 21 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
execução dos programas, permitindo que o .NET Framework garanta uma série de 
aspectos válidos para o perfeito e seguro funcionamento tanto da aplicação como 
também do sistema operacional. 
 
 
Figura 9 – Common Language Runtime 
 
 É neste momento que percebemos uma das primeiras vantagens da 
plataforma .NET, que oferece ao programador a capacidade de utilizar qualquer 
linguagem de programação que suporte .NET, fazendo com que essa escolha 
atenda seu conhecimento pré-existente em determinada linguagem (Java, Cobol, 
Visual Basic, C# e etc.), aumentando, dessa forma, a produtividade na construção 
de sistemas. Quando um programa é compilado para .NET, o compilador converte 
a linguagem de programação utilizada para uma linguagem padrão da plataforma 
.NET chamada Microsoft Intermediate Language (MSIL) (figura 10). Toda 
linguagem gera o mesmo MSIL, cuja capacidade permite ao programador possuir 
particularidades em determinada linguagem, mas o seu resultado será sempre o 
mesmo. 
 
 
Figura 10 – O processo de compilação e execução do MSIL 
Programação Aplicada – Microsoft .NET usando C# 22 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
 O programa gerado em MSIL não pode ser executado diretamente pelo 
sistema operacional. É necessário um programa para sua execução. É nesse 
momento que um outro subcomponente do .NET Framework atua: o compilador 
Just-in-time. Esse software basicamente lê o programa compilado em MSIL e 
executa-o de acordo com a lógica empregada pelo programador, conforme 
mostramos na figura 8. 
 
7.2 Biblioteca de classes do .NET Framework 
 
 É um conjunto de programas, organizados em bibliotecas de código já 
compilado, que fornece o conjunto de recursos que a plataforma .NET possui, para 
que o programador construa o sistema utilizando-se das funcionalidades disponíveis. 
Se o programador precisa abrir um arquivo, por exemplo, deve se utilizar das rotinas 
de abertura de arquivos já disponíveis na plataforma, para que o seu programa seja 
considerado “código gerenciado”. 
 As bibliotecas de classes ficam facilmente disponíveis através de ferramentas 
de desenvolvimento, como é o caso do Visual Studio .NET, que permite ao 
programador inserir uma determinada funcionalidade rapidamente. 
 As bibliotecas são organizadas de tal modo que o programador encontre 
facilidade para uma funcionalidade específica e também organize as classes em 
categorias e hierarquia, permitindo ainda o reuso entre as próprias classes. Cada 
elemento ou funcionalidade dessa hierarquia de bibliotecas de classe, é chamado de 
namespace. Na versão atual do .NETFramework, a bibloteca fornece centenas de 
classes, para atender às mais diversas finalidades. 
 
7.3 Acesso a dados na plataforma .NET 
 
 Quando falamos em acesso a dados, estamos nos referindo à funcionalidade 
da aplicação que permite obter ou armazenar informações em um banco de dados. 
Com o objetivo de facilitar o trabalho de construção de programas com acesso a 
banco de dados, a platalaforma .NET oferece um conjunto de classes chamada 
ADO.NET contendo recursos e funcionalidades para atender à grande maioria das 
demandas para o desenvolvimento de sistemas com banco de dados. 
Programação Aplicada – Microsoft .NET usando C# 23 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
7.4 Desenvolvimento de Sistemas para a Web 
 
 O desenvolvimento de aplicações para Web é facilitado, também, por um 
conjunto de classes chamado ASP.NET. Na verdade, o ASP.NET é a evolução de 
um ambiente de execução de aplicações para a Web que a Microsoft lançou em 
1997, chamado Active Server Pages (ASP). Basicamente, o ASP permite ao 
programador trabalhar com o conceito de páginas dinâmicas no desenvolvimento de 
aplicações para Web, recursos fundamentais para seu sucesso. 
 
7.5 Formulários Windows 
 
 O termo formulário refere-se às janelas apresentadas do seu sistema. A 
plataforma .NET oferece também um conjunto de classes e componentes para a 
construção rápida de telas para a interface com o usuário do sistema. A esse 
conjunto chamamos Windows Forms. 
 
8 AS LINGUAGENS PARA .NET 
 
 Como vimos no tópico anterior, o .NET Framework permite que o 
programador escolha a linguagem que deseja utilizar na construção de seu sistema. 
Para isso, a linguagem também precisa suportar as regras da plataforma .NET. 
Chamamos de linguagem para .NET a linguagem que gerar código gerenciado com 
base nos padrões estabelecidos pela plataforma. Nem todas as linguagens 
oferecem esse suporte. 
 Em particular, a linguagem C# foi lançada em conjunto com a plataforma 
.NET. Seu principal objetivo é permitir ao programador o completo uso dos 
benefícios da plataforma, mas utilizando-se de padrões de construção já 
conhecidos. É a linguagem preferencial no desenvolvimento para .NET, já que está 
estruturada com todos os aspectos que a Microsoft espera que um progamador 
utilize em .NET. 
 Outras linguagens foram transportadas pela Microsoft para suportar a 
plataforma .NET como o Visual Basic e o Visual J# (versão Java da Microsoft). 
Linguagens de outros fabricantes também foram adequadas. 
Programação Aplicada – Microsoft .NET usando C# 24 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
 
• COBOL, 
• SmallTalk, 
• Delphi, 
• Perl. 
 
 
Síntese 
 
Nesta aula você tomou conhecimento da plataforma .NET, sua importância e 
seus componentes. Pudemos perceber que é um assunto extenso, mas 
extremamente atual, considerando as tecnologias que a Microsoft empregou na 
construção da plataforma. É importante concluirmos que, usando a .NET, o 
programador trabalha em um outro nível de desenvolvimento de sistemas, com um 
grande aumento de produtividade e no uso adequado de tecnologias necessárias 
para o dinâmico mundo dos negócios de hoje. 
Na próxima aula, vamos conhecer uma ferramenta para o desenvolvimento de 
sistemas para a plataforma .NET, e estaremos iniciando nossos primeiros 
programas. 
Até lá. 
Programação Aplicada – Microsoft .NET usando C# 25 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Exercícios Propostos 
 
1) Cite dois motivos que favoreceram à criação da plataforma .NET. Explique 
com as suas próprias palavras cada motivo. 
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________ 
2) O que é a plataforma .NET? 
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________ 
3) Quais são os componentes da plataforma .NET? 
______________________________________________________________
______________________________________________________________
_____________________________________________________________ 
 
4) Associe a coluna da direita com a coluna da esquerda. 
( ) Intermediate Language 1. Nome dado ao conjunto de classes fornecidas 
pela plataforma .NET, com o objetivo de fornecer 
uma estrutura hierárquica e organizada de 
funções. 
( ) Compilador Just-in-Time 2. Linguagem gerada após a compilação de um 
programa desenvolvido para a plataforma .NET. 
( ) Namespace 3. Biblioteca de classes que oferece suporte a banco 
de dados na plataforma .NET. 
( ) ADO.NET 4. Software utilizado para gerar código .NET 
(Intermediate Language). 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 26 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 2 
VISUAL STUDIO EXPRESS 
 
 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Descrever a ferramenta de desenvolvimento de sistemas 
para .NET; 
� Identificar os primeiros elementos de programação em 
linguagem C#; 
� Utilizar o compilador e executar um programa; 
� Entender como distribuir um programa para o usuário. 
 
Conteúdos da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
terminar, assinale o conteúdo já estudado. 
� É necessário um produto para desenvolvimento em .NET? 
� O que é o Visual Studio .NET? 
� As versões do Visual Studio 
� Instalado a versão Express 
� Conhecendo o ambiente 
� Criando um simples programa em C# 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 27 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Prezado(a) aluno(a), 
Bem-vindo(a) à nossa segunda aula. Você verá nesta aula como utilizar 
uma ferramenta de desenvolvimento de sistemas para a plataforma 
.NET. Essa ferramenta será utilizada durante todo o módulo, por isso, vamos entrar 
em detalhes operacionais para que você tenha um excelente desempenho nas 
atividades em aula. Também faremos uma provocação sobre a necessidade de 
utilizarmos ou não uma ferramenta de desenvolvimento, para construir programas 
.NET. 
Boa aula! 
 
 
1 É NECESSÁRIO UM PRODUTO PARA DESENVOLVIMENTO EM .NET? 
 
 Essa é a principal pergunta que o programador precisa responder quando 
falamos do Visual Studio. Muitos profissionais de informática questionam a 
obrigatoriedade no uso de determinada ferramenta, por sentirem um certo 
direcionamento ou “amarração” dos fabricantes de software. Na verdade, quando 
falamos em desenvolvimento de sistemas, nas condições atuais, estamos sempre 
buscando meios de atingir maior produtividade e precisão na construção de 
algoritmos. 
Historicamente, as linguagens compiladas não exigem uma ferramenta para 
construir programas, mas a sua adoção facilita o trabalho do programador e 
aumenta a sua produtividade. 
 Essa afirmativa também se aplica à plataforma .NET. Não é necessário (ou 
obrigatório) o uso do Visual Studio .NET para desenvolver sistemas para .NET, na 
verdade, os programadores e as empresas desenvolvedores de software percebem 
que o Visual Studio .NET acaba sendo a ferramenta ideal, considerando sua natural 
aplicação dos conceitos e tecnologias envolvidas na .NET. Isso ainda é mais forte se 
a opção de linguagem for da Microsoft, como é o caso do C#. 
 Outras ferramentas de desenvolvimento, também conhecidas como IDE 
(Integrated Development Environment, ou Ambiente de DesenvolvimentoIntegrado), 
existem no mercado, como o SharpDevelop e o Borland IDE, que possuem suas 
características específicas e podem acabar atendendo a um público particular de 
desenvolvedores. 
Programação Aplicada – Microsoft .NET usando C# 28 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
A Microsoft acabou inserindo no Visual Studio .NET um aspecto relevante: a 
capacidade de se utilizar qualquer linguagem que suporte .NET e possua recursos 
de integração com o ambiente do produto. Por exemplo, atualmente já é possível 
desenvolver em COBOL para .NET, usando o Visual Studio da Microsoft (figura 11). 
A ferramenta da Microsoft oferece um excelente suporte à extensão de suas 
capacidades internas, permitindo a personalização, construção de recursos 
específicos para determinada linguagem, o que está sendo explorado por 
determinados fabricantes, que se sentem liberados para focar no potencial da 
linguagem e não na ferramenta de desenvolvimento. 
 
 
Figura 11 – Cobol no Visual Studio 
 
 Apesar de todos os argumentos vantajosos no uso do Visual Studio .NET ou 
de ferramenta equivalente não influenciarem o programador mais resistente, há o 
meio convencional de desenvolvimento de sistemas .NET sem uma IDE. Para isso, 
basta que o progamador realize: 
• O download do programa de instalação do .NET Framework para 
desenvolvimento, que pode ser obtido no site da Microsoft; 
Programação Aplicada – Microsoft .NET usando C# 29 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
• Utilizar um editor de textos de sua escolha, como o Bloco de Notas, para 
digitar o algoritmo de acordo com a sintaxe da linguagem desejada, por 
exemplo C#; 
• Abrir uma sessão do Prompt do MS-DOS e efetuar a compilação do 
programa construído, usando o compilador fornecido pelo pacote de 
instalação do .NET Framework; 
• Executar o programa gerado pelo compilador. 
A questão que fica aqui é: qual a produtividade do programador usando esse 
método? O uso de uma ferramenta IDE é exatamente automatizar o processo acima 
descrito, favorecendo outros recursos importantes como: 
 
 
• a validação em tempo real; 
• a conformidade entre a linha digitada e a sintaxe da linguagem; 
• o uso de recursos de depuração do código para localizar um erro de 
lógica; 
• a execução do programa diretamente do ambiente da ferramenta, sem a 
necessidade de digitar algum comando. 
 
 
2 O QUE É O VISUAL STUDIO .NET? 
 
 É a nova geração das ferramentas de desenvolvimento de sistemas da 
Microsoft, com o total suporte às tecnologias e recursos disponíveis na plataforma 
.NET. Ela oferece ao programador o que há de mais atual nas práticas de 
engenharia de software e fornece um conjunto de versões para atender às 
particularidades de cada perfil de programador e da envergadura do projeto de 
software a ser construído. 
 A próxima pergunta que o programador precisa responder é: com o Visual 
Studio .NET, quais os tipos de aplicações que podemos construir? A versão atual, 
2005, permite que o programador construa os seguintes tipos de aplicações: 
• Windows Applications: este é o nome dado às aplicações .NET 
desenvolvidas com Interface Gráfica e são utilizadas pelos usuários 
Programação Aplicada – Microsoft .NET usando C# 30 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
localmente nos computadores, ou por uma rede interna. Esse tipo de 
aplicação é usada para soluções cliente-servidor e não se utiliza 
primariamente dos recursos da Internet; 
• Console Applications: são as aplicações que não possuem interface 
gráfica, também conhecidas como aplicações de modo caractere 
baseadas em MS-DOS e executadas em uma janela de comando do MS-
DOS em um sistema operacional Windows; 
• Componentes reutilizáveis ou bibliotecas de classes: permitem a 
construção de componentes a serem reutilizados por outras aplicações, 
seguindo padrões de mercado para sistemas distribuídos; 
• Web Applications: soluções baseadas em tecnologias da Internet, que 
utilizam primariamente as tecnologias da Web, como HTML, Javascript, 
http, etc. Além disso, também podem ser construídos Web Services, como 
componentes a serem acessados pela Internet, também usando padrões 
de mercado. 
De acordo com a aplicação desejada, precisamos utilizar uma versão 
específica do Visual Studio. 
Algumas vantagens no uso do Visual Studio .NET: 
• O Visual Studio automatiza os passos necessários para compilar um 
código-fonte, mas fornece um controle completo sobre os parâmetros que 
podem ser alterados para mudar o comportamento do processo de 
compilação; 
• O editor de textos foi desenvolvimento especificamente para as linguagens 
suportadas pelo Visual Studio, principalmente o C#, permitindo que a 
ferramenta possa, de forma simples e intuitiva, detectar erros e sugerir 
códigos onde for adequado; 
• Fornece um conjunto de modelos prontos para a construção de aplicações 
específicas, acelerando o processo de construção do projeto; 
• O Visual Studio (figura 12) fornece vários assistentes para “guiar” o 
programador em tarefas mais complexas ou que exigem um nível de 
cuidado, liberando o programador de detalhes necessários para a 
construção de determinada funcionalidade. 
 
Programação Aplicada – Microsoft .NET usando C# 31 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 12 – Ambiente do Visual Studio .NET Express 
 
 
3 AS VERSÕES DO VISUAL STUDIO 
 
 O Visual Studio .NET, versão 2005, apresenta cinco opções para uso do 
produto e cada uma direcionada para um perfil específico de profissional de TI, bem 
como, de acordo com a finalidade do projeto de software. 
 A opção gratuita do produto é chamada linha “Express”, dividida nas 
seguintes subversões: 
• Web Developer: direcionada para a construção de aplicações para a Web 
(chamadas Web Applications); 
• Visual Basic: voltada para o desenvolvimento de soluções baseadas em 
formulários, usando a linguagem Visual Basic; 
• Visual C#: voltada para o desenvolvimento de soluções baseadas em 
formulários, usando a linguagem C#; 
• Visual C++: voltada para o desenvolvimento de soluções baseadas em 
formulários, usando a linguagem C++; 
• Visual J#: voltada para o desenvolvimento de soluções baseadas em 
formulários, usando a linguagem Java; 
Programação Aplicada – Microsoft .NET usando C# 32 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
• SQL Express: para o desenvolvimento e gerenciamento de soluções a 
serem armazenadas e executadas no banco de dados da Microsoft. 
Também serve como base de dados para as demais versões da linha 
Express. 
Além das versões gratuitas do Visual Studio, também existem três versões 
pagas do produto: 
• Standard: das versões pagas, é a opção mais barata. Tem por objetivo o 
desenvolvimento de pequenas soluções e apenas um programador 
interage com o projeto; 
• Professional: essa versão possui as mesmas características da Standard, 
adicionando recursos mais robustos para projetos de médio tamanho e 
com suporte amplicado a banco de dados SQL Server 2005; 
• Tools for Office: para o desenvolvimento de componentes que serão 
utilizados por produtos da plataforma Office System (Excel, Word e etc.). 
Possui recursos limitados e suas capacidades estão totalmente 
direcionadas para o uso apenas com os produtos Office; 
• Visual Studio Team Sytem: possui todos os recursos das versões já 
mencionadas, mas amplia sobremaneira a capacidade de recursos do 
Visual Studio para trabalhar em equipes de projeto. O Team System 
propõe-se a fornecer um conjunto completo de ferramentas para todo o 
ciclo de desenvolvimento de soluções, incluindo documentações e a 
gestão de testes do produto. É excelente para projetos de grande porte, 
que envolvem um grande número de programadores.Nesse módulo utilizaemos o produto Visual C# 2005 Express Edition. 
 
 
2.4 Instalando a versão Express 
 
 Para realizar a instalação da versão Express do Visual Studio, para o 
desenvolvimento com C#, você precisa acessar o site da Microsoft no seguinte 
endereço (infelizmente ainda não há versão em português do produto): 
http://msdn2.microsoft.com/pt-br/vstudio/default.aspx 
Programação Aplicada – Microsoft .NET usando C# 33 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Há duas formas para realizar a instalação dessa versão: on-line ou off-line. Na 
versão on-line, você fará o download de um pequeno programa que, ao ser 
inicializado, fará a conexão com o site da Microsoft e realizará a instalação após o 
download dos componentes necessários. Para a versão off-line, você deverá efetuar 
o download de um grande arquivo que, na verdade, é uma imagem de CD, gravá-lo 
com o conteúdo da imagem e depois realizar a instalação a partir do CD gravado. 
 O método mais simples (mas a velocidade dependerá de sua conexão com a 
Internet), é a instalação on-line. É importante ressaltar que a Microsoft exige o 
registro do produto, apesar de não cobrar nenhum licenciamento. 
 Nesse cenário de instalação on-line, após o download do arquivo para 
instalação, execute o programa e siga os passos do assistente de instalação, 
habilitando ou desabilitando opções de acordo com a sua finalidade de 
desenvolvimento. Para esse módulo, vamos considerar os passos a sequir descritos 
e demonstrados na figura 13: 
1. Efetue o download do arquivo vccsetup.exe; 
2. Execute o programa. Será apresentada a tela de boas vindas do programa 
de instalação; 
3. Clique no botão Next; 
4. Na janela de aceite da licença de uso (End-user License Agreement), 
marque a frase I accept the terms of the License Agreement e depois, 
clique no botão Next; 
 
 
Figura 13 – Opção de aceite da Licença de Uso 
 
5. Na próxima janela do assistente de instalação, não selecione nenhuma 
opção e clique no botão Next. As duas opções apresentadas referem-se à: 
Microsoft MSDN - é a documentação do produto; e Microsoft SQL 
Programação Aplicada – Microsoft .NET usando C# 34 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Server 2005 Express - é o banco de dados que pode ser integrado ao 
ambiente (figura 14). Escolha a opção do banco de dados (Microsoft SQL 
Server), já que estaremos preparando o ambiente para o assunto de 
banco de dados com C#; 
 
 
Figura 14 – Opções para produtos adicionais ao C# Express 
 
6. A próxima janela solicita o local de armazenamento do software, para a 
instalação. Essa opção é importante, caso você não possua espaço 
suficiente no disco rígido para a instalação do programa. Caso possua 
espaço, mantenha a informação sugerida e clique no botão Next (figura 
15). 
 
Programação Aplicada – Microsoft .NET usando C# 35 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 15 – Informações sobre a pasta de destino do programa de instalação 
 
7. O programa de instalação iniciará a cópia e a configuração do sistema 
operacional para a execução do programa. Aguarde o término da 
instalação (figura 16); 
 
 
Figura 16 – Acompanhamento do processo de instalação 
 
Observe o espaço 
necessário para instalação 
e o espaço disponível no 
disco rígido de destino. 
Programação Aplicada – Microsoft .NET usando C# 36 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
8. Quando o programa de instalação terminar o passo anterior, a janela de 
conclusão será apresentada, fornecendo um resumo da instalação e 
instruções para registro do produto (figura 17); 
 
 
Figura 17 – Tela final da instalação 
 
9. Clique na frase sublinhada em azul “Register Now”, para que o programa 
de instalação o (a) encaminhe diretamente para a página de registro do 
produto na Internet; 
10. Para efetuar o registro, você precisa de um Microsoft Passport. Na janela 
apresentada, efetue o seu login; 
11. Na próxima página do site de registro da Microsoft, informe os dados 
solicitados no formulário (figura 18); 
12. Finalmente, o site de registro apresentará uma janela contendo o número 
de série para registro do produto; 
Programação Aplicada – Microsoft .NET usando C# 37 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 18 – Janela de Registro 
 
13. Copie o número de registro e execute o Visual C# 2005 Express (figura 
19). Aguarde até que o programa de preparação da primeira execução 
termine; 
 
Figura 19 – Janela de preparação da primeira execução 
 
14. No ambiente do programa, execute o comando Register product do 
menu Help (figura 20); 
 
Figura 20 – Menu Help 
Programação Aplicada – Microsoft .NET usando C# 38 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
15. Na janela apresentada, cole o número de registro no campo Registration 
Key e clique no botão Complete Registration (que somente será 
habilitado se houver um número digitado no campo) (figura 21); 
 
 
Figura 21 – Janela de registro 
 
16. O seu programa está pronto para ser utilizado. 
 
5 CONHECENDO O AMBIENTE DO VISUAL C# 2005 EXPRESS 
 
 Quando você executa o programa pela primeira vez, ele apresenta um 
conjunto de painéis vazios e um conteúdo central da janela, contendo informações 
sobre novidades e informações atualizadas da Microsoft (que poderão estar 
atualizadas se a conexão com a Internet existir). Para que os demais painéis 
apresentem suas funcionalidades e informações, é necessário que um projeto seja 
aberto ou criado. 
 Ao clicar na opção Create: Project... será apresentada uma nova janela, 
contendo os modelos de aplicações que você poderá utilizar para construir o seu 
Programação Aplicada – Microsoft .NET usando C# 39 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
programa (figura 22). O modelo a ser selecionado, deverá ser correspondente à 
finalidade da sua aplicação. 
 
 
Figura 22 – Janela de modelos de aplicações 
 
 Em nosso módulo, os projetos que criaremos serão sempre Windows 
Applications. Mas vamos conhecer os demais modelos disponíveis: 
 
Modelo Descrição 
Windows Application Voltado para o desenvolvimento de sistemas baseados 
em Janelas/Formulários 
Class Library Permite a construção de uma biblioteca de classes, para 
reuso em outras aplicações 
Console Application Para o desenvolvimento de soluções em modo 
caractere, para o uso em janelas de Prompt do MS-DOS 
Empty Project Modelo vazio, sem a inserção automática de qualquer 
recurso. É útil quando desejamos construir um projeto do 
zero, sem qualquer parâmetro já inicializado, como nos 
outros modelos. 
Starter Kits A Microsoft fornece vários Starter Kits para acelerar o 
desenvolvimento de uma determinada aplicação. Por 
padrão, o produto já vem instalado com dois kits: Screen 
Saver e Movie Collection. 
 
 
Programação Aplicada – Microsoft .NET usando C# 40 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Usando o ícone Search online templates...você pode procurar no site da 
Microsoft outros modelos ou Starter kits. Após escolher o modelo desejado, informe 
o nome do projeto no campo Name da janela. 
 Ao escolher a opção mais comum, Windows Application, a janela do 
ambiente de desenvolvimento do Visual C# é tal qual a que mostramos na figura 23: 
 
Figura 23 – Janela principal com um projeto aberto 
 
 Na janela principal, você pode verificar que existem várias janelas e 
elementos visuais. Vamos conhecer rapidamente cada um deles. Na parte superior 
da janela estão o menu e a barra de ferramentas, que seguem as mesmas regras de 
qualquer programa para Windows. No lado esquerdo está o painel Toolbox (caixade ferramentas), que permite a inserção de objetos diretamente no formulário. No 
lado direito da janela, dois painéis são apresentados: o painel superior é o Solution 
Explorer e o painel inferior é a janela de Propriedades. Na parte central da janela 
está um formulário vazio, pronto para ser personalizado, de acordo com as 
necessidades de sua aplicação (figura 24). 
Programação Aplicada – Microsoft .NET usando C# 41 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 24 – Janela principal e seus componentes 
 
 O desenvolvimento de soluções, usando essa ferramenta, segue as mesmas 
orientações para as aplicações RAD (Rapid Application Development), ou seja, você 
desenha a interface que deseja construir, altera as propriedades, insere objetos à 
interface através do Toolbox e depois associa código de programação aos eventos 
associados aos objetos. Além disso, também você poderá criar classes e subrotinas 
para reuso dentro e fora da aplicação. 
 Se você efetuar um duplo clique no formulário vazio, no centro da janela, o 
editor de código do Visual Studio será apresentado. Há, no editor de código, várias 
particularidades importantes para o programador, exemplo: navegação no código, 
Intellisense e marcas de revisão. De todos os detalhes do editor, o mais interessante 
é o Intellisense, que fornece informações ao programador, de acordo com os 
comandos digitados no ambiente do editor (figura 25). O ambiente do Visual Studio 
apresenta opções de acordo com o comando envolvido. 
Programação Aplicada – Microsoft .NET usando C# 42 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 25 – Janela do editor de código 
 
 O Intellisense fornece ao editor de código a capacidade de sugerir várias 
opções no contexto do programa, à medida que você digita, uma cortina flutuante é 
apresentada com os itens possíveis a serem utilizados na digitação, acelerando o 
processo de construção do código. 
 Há também o Hot Compiler, que “destaca” no código as instruções que 
apresentam erros de sintaxe, enquanto você digita o seu programa. Quando há um 
erro, o texto é sublinhado e, ao passar com o mouse sobre o texto destacado, será 
apresentada uma pequena janela com informações sobre o erro. 
 O Visual C# 2005 Express também fornece um compilador integrado e a 
capacidade de executar o seu código diretamente do ambiente de programação. Ele 
permite compilar um arquivo particular ou toda a solução (um grupo de arquivos que, 
juntos, forma a aplicação). Uma vez compilada sua aplicação, você pode se utilizar 
dos recursos de depuração de código (debug) do ambiente, para localizar possíveis 
erros de lógica. Finalmente, após ter estabilizado todos os possíveis problemas de 
Programação Aplicada – Microsoft .NET usando C# 43 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
seu programa, você poderá gerar uma aplicação a ser distribuída em forma de 
pacote de aplicação. 
 
6 CRIANDO UM SIMPLES PROGRAMA EM C# 
 
 Nesse tópico vamos realizar os passos do ciclo de desenvolvimento de um 
sistema simples, usando o Visual C# 2005 Express (figura 26). Basicamente, os 
passos são mesmos já mencionados anteriormente: 
• Desenhar a interface que deseja apresentar para o usuário, utilizando as 
opções de objetos do Toolbox; 
• Alterar as propriedades da janela e dos objetos para atender a uma 
funcionalidade específica; 
• Associar código de programação aos eventos dos objetos, com o objetivo 
de fornecer funcionalidades ao usuário, de acordo com o evento envolvido 
no progama; 
• Testar o programa; 
• Compilar e distribuir o programa. 
 
 
Figura 26 – Ciclo de desenvolvimento RAD 
 
1. Se você não executou o Visual C# 2005 Express, execute-o agora; 
2. Na janela principal, clique no comando Create: Project...; 
3. Na janela New project, selecione o modelo Windows Application, informe o 
nome do projeto de “AulaPrática1” e clique no botão OK; 
Programação Aplicada – Microsoft .NET usando C# 44 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
4. Através do Toolbox, insira um botão ao formulário. Sua tela deverá se 
apresentar conforme a figura 27; 
 
 
Figura 27 – Botão inserido no formulário 
 
5. Selecione o botão inserido no formulário e no painel de Propriedades, altere 
a propriedade Text para “Mensagem”, conforme a figura 28; 
 
 
Figura 28 – Painel de propriedades 
 
6. Agora efetue um duplo clique sobre o botão. O painel de código será 
apresentado (figura 29). Então digite o seguinte comando entre as chaves 
abaixo do comando “private void button1_Click”; 
MessageBox.Show (“Exemplo de primeiro programa em C#”); 
 
Figura 29 – Janela de código com o comando inserido 
 
7. O código de seu programa fica assim: 
namespace AulaPrática1 
{ 
 public partial class Form1 : Form 
 { 
Programação Aplicada – Microsoft .NET usando C# 45 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 public Form1() 
 { 
 InitializeComponent(); 
 } 
 private void button1_Click(object sender, EventArgs e) 
 { 
 MessageBox.Show("Exemplo de primeiro programa em c#"); 
 } 
 } 
} 
8. Para testar o programa, clique no botão Start Debugging, ou pressione a 
tecla F5; 
9. A janela do programa será apresentada. Clique no botão e veja o resultado; 
10. Clique no botão Fechar da janela, com o objetivo de parar o programa; 
11. Agora vamos compilar o programa para a distribuição. Execute o comando 
Build Solution do menu Build, ou pressione a tecla F6; 
12. Execute o comando Publish do menu Build. Na janela apresentada, 
referente ao Assitente de Publicação, informe a pasta de destino para que o 
programa seja disponibilizado. Essa janela permite que você envie o 
programa gerado para o computador local, para um computador da rede, ou 
um local de armazenamento na Internet. Informe o local ou utilize o botão 
Browse para localizar uma pasta local em seu computador e clique no botão 
Finish; 
13. Localize a pasta de destino informada no passo 12 e verifique que serão 
criados dois arquivos (um referente ao programa de instalação e outro que é o 
próprio programa desenvolvido). Esse é o pacote de instalação de seu 
programa, que poderá ser disponibilizado para os usuários do sistema. 
 
 
Síntese 
 
Nesta aula você estudou sobre a importância do uso de ferramentas IDE para o 
desenvolvimento .NET e também conheceu as versões do Visual Studio, 
entendendo qual a versão mais adequada para o tipo de projeto envolvido. Além 
disso, você aprendeu como instalar o Visual Studio para iniciar os seus trabalhos, 
Programação Aplicada – Microsoft .NET usando C# 46 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
bem como obteve as informações básicas sobre o ambiente do produto. Finalmente, 
como primeiro passo na incursão do desenvolvimento em C#, você executou o ciclo 
de desenvolvimento RAD, usando um exemplo simples na linguagem C#. 
Na próxima aula vamos iniciar nossa primeira incursão efetiva na linguagem 
de programação C#. Vamos adiante, pois agora os assuntos vão começar a 
apresentar resultados práticos. 
Até a próxima aula. 
 
 
Exercícios Propostos 
 
1) Diante do que você aprendeu nesta aula, é obrigatório o uso do Visual Studio 
para o desenvolvimento de aplicações .NET? Por quê? 
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________ 
2) É possível utilizar outras linguagens de desenvolvimento, dentro do Visual 
Studio, além do C#? Se positivo, cite alguns exemplos de linguagem. 
____________________________________________________________________________________________________________________________
______________________________________________________________ 
3) O seu projeto tem por finalidade o desenvolvimento de uma aplicação média 
para a Web. Qual a versão do Visual Studio que você deverá utilizar? 
______________________________________________________________
______________________________________________________________ 
Programação Aplicada – Microsoft .NET usando C# 47 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 3 
TRABALHANDO COM VARIÁVEIS 
EM C# 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Identificar a reconhecer a sintaxe da linguagem C#; 
� Utilizar os comandos no uso de variáveis e expressões. 
 
Conteúdos da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
terminar, assinale o conteúdo já estudado. 
� Conhecendo os elementos de um programa; 
� Regras de sintaxe da linguagem C#; 
� Trabalhando com variáveis; 
� Recursos especiais com variáveis strings; 
� Enumerações, estruturas e Arrays; 
� Construindo expressões. 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 48 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Prezado(a) aluno(a), 
Bem-vindo(a) à nossa terceira aula. Conforme tratamos nas aulas 
anteriores, a linguagem C# foi desenvolvida especificamente para a 
plataforma .NET. Projetada por Anders Hejlsberg (criador do Delphi) e Scott 
Wiltamuth, um de seus principais apelos é facilitar o processo de migração de 
programadores para a nova plataforma, bem como, a adoção de novos 
programadores. De fato o projeto do C# buscou os melhores recursos das 
linguagens C, C++ e Java, mas com as facilidades do Visual Basic e do Delphi. É 
orientada a eventos, completamente orientada a objetos, com uma abordagem de 
construção visual que permite construir programas usando um IDE (conforme vimos 
na aula anterior). O objetivo desta aula é lhe apresentar os recursos iniciais da 
linguagem C#, fornecendo-lhe a incursão nos elementos da linguagem, porque que 
cada elemento tem seu lugar, entender o objetivo de cada comando e conhecer as 
regras sintáticas que a linguagem implementa. 
Boa aula. 
 
 
1 CONHECENDO OS ELEMENTOS DE UM PROGRAMA C# 
 
 Antes de você conhecer as regras sintáticas do C# é importante que tenha a 
oportunidade de analisar um código existente na linguagem. A estrutura da 
linguagem de programação precisa ser seguida para que o compilador interprete 
corretamente o programa. O Visual Studio reforça as regras através de seus 
recursos de validação de sintaxe, o que não permite a compilação de um programa 
contendo erros. Vamos entender o código C# observando a figura 30: 
Programação Aplicada – Microsoft .NET usando C# 49 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 30 – Análise de código C# 
 
 De forma geral, todo programa em C# possui 5 elementos principais: área de 
declarações das classes, declaração da criação de namespace, bloco de declaração 
da classe, ponto de inicialização e a área de comandos/instruções da linguagem. 
 
1.1 Área de declarações das classes 
 
 As primeiras linhas do programa possuem a instrução sobre a(s) classe(s) 
que está(ão) em uso na aplicação, através da palavra reservada using. De acordo 
com o que você deseja fazer no programa, pode utilizar uma classe já existente no 
.NET Framework e acelerar o processo de construção de seu programa. As palavras 
que se referem à uma classe existente, seguem a documentação do .NET 
Framework. 
Você poderá ter um excelente desempenho no desenvolvimento de 
sistemas .NET, se conhecer as principais blbiotecas de classes 
existentes na plataforma. Além disso, se você estudar ainda mais as 
potencialidades disponíveis na plataforma, estará preparando-se para outros 
Programação Aplicada – Microsoft .NET usando C# 50 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
desafios. A biblioteca de classes fornecida no .NET Framework é extremamente 
grande, mas com experiência e lógica, facilmente poderá localizar e utilizar uma 
classe específica para um determinada finalidade. 
 
 
1.2 Declaração de criação da Namespace 
 
 Para evitar que ocorram colisões entre as classes do usuário e as classes do 
.NET Framework, é possível a criação de um namespace diretamente no código de 
programação. O principal objetivo dessa declaração é garantir a exclusividade do 
nome da classe dentro da hierarquia de namespaces que o .NET oferece. Toda 
aplicação e classe construída, por padrão, é armazenada no namespace global, 
dessa forma, todo código criado pode ser acessado por outro código que esteja 
nesse mesmo namespace, apenas utilizando-se o nome da classe. Então, o uso de 
namespace garante que o código será qualificado, permitindo que o código possa 
ser acessado fora do namespace global. 
 Essa declaração é o uso da palavra reservada namespace, acompanhada do 
nome da namespace a ser criada, baseada no nome informado pelo programador, 
que segue as mesmas regras de declaração de variáveis na linguagem. Além disso, 
o bloco de declaração da namespace é acompanhado das chaves de abertura e 
fechamento e todo o conjunto de instruções deve ficar entre essas chaves. 
 
1.3 Bloco de declaração da classe 
 
 A declaração class Program é o início da construção da classe. A palavra 
reservada classe é acompanhada pelo nome da classe, informada pelo 
programador e que segue as regras de nomes da linguagem. Nesse caso, como um 
namespace está sendo criado, já utilizando o nome informado pelo programador, a 
palavra Program é o nome atribuído para a classe. Via de regra, o nome das classes 
sempre começa com letra maiúscula. 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 51 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
1.3 Ponto de inicialização da classe 
 
 Essa declaração é a criação de um método da classe Program. Nesse caso, o 
método nomeado com a palavra Main tem um significado especial, determinando ao 
compilador que o programa começa a partir desse ponto. O parênteses, após a 
palavra Main, determina para o compilador que a declaração é um método. Toda 
aplicação .NET deve possuir um método Main, senão a aplicação não será 
executada. 
A linha de instrução Main é fundamental para a construção de um 
programa em C#. Recebe restrições importantes que precisam ser 
seguidas para que o progama inicialize corretamente. A palavra 
reservada Main precisa “sempre” ser iniciada com a letra maiúscula M. Além disso, 
precisa ser declarada da seguinte forma: public static void Main. Em uma 
aplicação C#, múltiplas classes podem existir, mas apenas uma deve conter o 
método Main. Finalmente, quando o método Main é finalizado, a aplicação termina. 
 
 
1.4 Área de instruções/Comandos da linguagem 
 
 Nesse bloco, o programador insere as instruções e a lógica do programa, que 
deverão ser seguidos durante a execução do programa. 
Nesse ponto, é importante você conhecer a lista de palavras reservadas 
que não podem ser utilizadas para nomear uma variável ou para se 
utilizar como parte de um programa, exceto para implementar o 
comando, de acordo com as regras da linguagem C#. 
 
 
1.5 Palavras reservadas da linguagem C# 
 
 As palavras abaixo são utilizadas pela linguagem C# e sempre são 
apresentadas em letras minúsculas. 
abstract as base bool break 
byte case catch char checked 
Programação Aplicada – Microsoft .NET usando C# 52 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
class const continue decimal default 
delegate do double else enum 
event explicit extern false finallyfixed float for foreach goto 
if implicit in int interface 
internal is lock long namespace 
new null object operator out 
override params private protected public 
readonly ref return sbyte sealed 
short sizeof stackalloc static string 
struct switch this throw true 
try typeof uint ulong unchecked 
unsafe ushort using virtual void 
volatile while 
 
 
2 REGRAS DE SINTAXE DA LINGUAGEM C# 
 
 Conforme você verificou no tópico anterior, a programação C# segue regras 
específicas. Considere as seguintes regras essenciais para que você possa construir 
programas: 
• O C# é sensível a letras maiúsculas e minúsculas, dessa forma, uma 
variável declarada como “Exemplo” é diferente de “exemplo”; 
• O uso de espaços em branco pode ser abundante, pois o compilador os 
ignora para a geração do programa; 
• Mantenha a distribuição do código implementada pelo ambiente do Visual 
2005 C# Express. A indentação é fundamental para que o código seja de 
fácil leitura e entendimento; 
• Utilize comentários, sempre que necessário, usando barras comuns (//) 
precedendo o texto que será o comentário. Em caso de comentários que 
Programação Aplicada – Microsoft .NET usando C# 53 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
ocupem mais de uma linha, utilize a combinação /* e */, veja exemplo na 
figura 31. 
 
 
Figura 31 – Exemplo de instruções de comentários em C# 
 
 
3 TRABALHANDO COM VARIÁVEIS 
 
 Agora que você obteve conhecimentos sobre os elementos de programação 
da linguagem C#, o armazenamento de dados é a primeira atividade que um 
programador realiza para construir um algoritmo. Há, na linguagem C#, uma extensa 
capacidade para o armazenamento de dados, usando variáveis. A sintaxe padrão 
para a declaração de uma variável em C# é a que mostra a figura 32. 
 
Figura 32 – Exemplos de declaração de variáveis 
 
Então, a sintaxe para declaração de variáveis no C# é: 
 [modificadores] tipo declarações; 
Programação Aplicada – Microsoft .NET usando C# 54 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
• Modificadores (opcional): informação que determina a forma de 
funcionamento da encapsulação da variável, por exemplo, public, que 
permite o acesso público ou static que mantém o valor da variável; 
• Tipo: nome de um dos tipos de dados suportados pela linguagem C#; 
• Identificadores: lista de declarações de nomes de variáveis 
(identificadores), separados por vírgula. Uma declaração pode também 
conter a atribuição de valor à variável. Lembre-se de que o C# exige que 
toda variável precisa ser inicializada antes de ser utilizada. 
Para criar e utilizar uma variável, você precisa escolher um significado e um 
nome apropriado para ela. Cada variável possui um nome que também pode ser 
referenciado como identificador de variável. 
 
3.1 Tipos de dados 
 
A linguagem C# é fortemente baseada em tipos, então podemos dizer que é 
uma linguagem tipada. Isso significa que todo objeto criado ou utilizado precisa, 
obrigatoriamente, ser um tipo específico de dado, exemplo: um inteiro, ou uma 
string. 
 Esse recurso é um aspecto importante dentro do processo de 
desenvolvimento de sistemas, por impactar diretamente na performance do 
programa e no grau de planejamento da aplicação. De acordo com o tipo de dados 
aplicados em determinada situação, haverá perda ou ganho de performance durante 
a operação, pois poderá gerar uma exceção no sistema, se o tipo de dado escolhido 
armazenar uma informação que originalmente não havia sido planejada. A 
linguagem C# possui duas grandes categorias de tipos de dados: intrínsecos e os 
tipos definidos pelo usuário. 
Os tipos intrínsecos são os tipos de dados pré-construídos na linguagem. No 
caso do .NET, estão baseados na especificação CTS (Common Type System) da 
plataforma. Alguns autores também se referem aos tipos intrínsecos como tipos 
primitivos, considerando que o C# acessa diretamente as classes básicas do .NET e 
os tipos de dados; por exemplo, o tipo de dados int do C# é um sinônimo para 
System.Int32, um tipo de dado primitivo que define um número inteiro de 32-bits com 
sinal. 
 
Programação Aplicada – Microsoft .NET usando C# 55 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3.1.1 Tipos de dados intrínsecos- Inteiros 
 
São oito tipos de dados inteiros, cuja variedade permite que você selecione o 
tipo de dado com suporte suficiente para o intervalo de dados que será armazenado. 
Tipo Implementação Tipo Primitivo 
Byte 
 
Inteiro de 1 byte sem sinal 
(0 a 255) 
Valor default: 0 
System.Byte 
Sbyte 
 
Inteiro com sinal de 1 byte 
(-127 a 128) 
Valor default: 0 
System.SByte 
Short 
 
Inteiro com sinal de 16 bits 
(-32.768 a 32.767) 
Valor default: 0 
System.Int16 
Ushort 
 
Inteiro sem sinal de 16 bits 
(0 a 65.535) 
Valor default: 0 
System.Uint16 
Int 
 
Inteiro de 32 bits com sinal 
(-2.147.483.648 a 2.147.483.647) 
Valor default: 0 
System.Int32 
Uint 
 
Inteiro de 32 bits sem sinal 
(0 a 4.294.967.295) 
Valor default: 0 
System.Uint32 
Long 
 
Inteiro com sinal de 64 bits 
(-9.223.372.036.854.775.808 a 
9.223.372.036.854.775.807) 
Valor default: 0 
System.Int64 
Ulong 
 
Inteiro sem sinal de 64 bits 
(0 a 18.446.744.073.709.551.615) 
Valor default: 0 
System.Uint64 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 56 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3.1.2 Tipos de dados intrínsecos – Lógicos 
 
Há um tipo de dado booleano utilizado para o trabalho com expressões que 
precisa representar dado FALSO ou VERDADEIRO. 
 
Tipo Implementação Tipo Primitivo 
Bool 
 
Pode ter os valores true e false. Não é compatível 
com inteiro. 
 
Valor default: false 
 
System.Boolean 
 
 
3.1.3 Tipos de dados intrínsecos – Caractere 
 
Em C#, todos os caracteres (e strings) são armazenados no padrão Unicode 
e usam 16 bits por caractere. O Unicode é um padrão mundial para representação 
de caracteres e permite armazenar os caracteres de todas as línguas vivas (como 
grego, japonês, chinês e coreano) e algumas mortas (como sânscrito). 
Tipo Implementação Tipo Primitivo 
Char 
 
Um único caractere Unicode de 16 bits. Não é 
compatível com inteiro. 
 
Ou na terminologia do Unicode: U+0000 até U+ffff 
Por exemplo, a letra A no Unicode é representada 
como /U0041 
 
Valor default: Caracter Unicode com o valor 0 
 
System.Char 
 
 
3.1.4 Tipos de dados intrínsecos – Ponto flutuante 
 
 A linguagem C# suporta dois tipos de variáveis para armazenar ponto 
flutuante. 
Programação Aplicada – Microsoft .NET usando C# 57 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Tipo Implementação Tipo Primitivo 
Double 
 
Ponto flutuante binário IEEE de 8 bytes 
(±5,0 x 10-324 até ± 1,7 x 10308) 
15 a 16 dígitos decimais de precisão 
 
Valor default: 0.0 
 
System.Double 
 
 
 
Float 
 
Ponto flutuante binário IEEE de 4 bytes 
(±5,0 x 10-45 até ± 3,4 x 1038) 
7 dígitos decimais de precisão 
 
Valor default: 0.0 
 
 
 
System.Single 
 
As operações de ponto flutuante não geram erros: 
• Uma operação que gera um resultado muito pequeno para ser 
representado torna-se zero; 
• Uma divisão por zero com números de ponto flutuante não gera erro, 
produz resultado infinito. Você pode verificar se o valor é infinito positivo 
ou negativo com o método Double.IsInfinity(); 
• Uma operação inválida gera como resultado NaN (não é um número); 
• Se um dos operadores for NaN, o resultado é NaN. 
 
 
3.1.4 Tipos de dados intrínsecos – Decimal 
 
Esse tipo está bem menos sujeito a erros de arredondamentoque ocorrem 
com os formatos binários. As contas são feitas na base 10. 
Tipo Implementação Tipo Primitivo 
decimal 
 
Ponto flutuante decimal de 128 bits 
(1,0 x 10-28 até 7,9 x 1028), 28 a 29 dígitos decimais 
de precisão 
 
Valor default: 0.0 
 
System.Decimal 
 
Programação Aplicada – Microsoft .NET usando C# 58 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3.1.5 Tipos de dados intrínsecos – String 
 
Um dos tipos mais comuns em C# é o string, que também inclui algumas 
características especiais, não comuns nas outras linguagens. As variáveis string são 
alocadas dinamicamente e podem ter de zero a 1 Giga de caracteres. 
Tipo Implementação Tipo Primitivo 
String 
 
String Unicode com até 1 giga de caracteres 
 
 
System.String 
 
 
3.1.6 Tipos de dados - Definidos pelo usuário 
 
Como vimos, o .NET Framework fornece um grande conjunto de tipos de 
dados pré-construídos, mas também há possibilidade de criar os próprios tipos de 
dados. Os novos tipos são usados em qualquer situação onde normalmente você 
usaria um tipo primitivo. 
Tipo Descrição 
Enum 
 
Permite declarar uma seqüência de identificadores 
associados, mas incompatíveis com inteiros e com outras 
enumerações. 
Struct 
 
Permite declarar tipos que contêm vários valores, identificados 
por um nome. 
 
class 
 
 
Permite declarar classes. 
 
interface 
 
 
Declara uma espécie de classe abstrata, que pode ser 
implementada por outra classe. 
Delegate 
 
Declara um ponteiro para um método de uma classe. 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 59 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
4 RECURSOS ESPECIAIS COM VARIÁVEIS STRINGS 
 
 O tipo de dados String possui algumas potencialidades. O primeiro aspecto é 
a capacidade de inserir literais nas strings, para que sejam interpretadas. Na 
verdade, são caracteres especiais, interpretados ou não, de acordo com sua 
finalidade. 
Finalmente, podemos utilizar operações pré-definidas e métodos para a 
manipulação de dados, disponíveis na linguagem. 
 
4.1 Literais (caracteres especiais) 
 
Os caracteres especiais que podem ser implementados em strings, estão 
listados abaixo. Para que desabilite a interpretação dos caracteres na string, o valor 
de atribuição para a variável deve ser precedido do símbolo arroba (@). 
Caracteres Propósito 
\t Tabulação horizontal 
\r Retorno de carro (carriage return) 
\v Tabulação vertical 
\f Avanço de página 
\n Salto de linha 
\x 
Especifica um caractere especial padrão ASCII 
usando dois dígitos hexadecimais (inserido 
imediatamente ao lado do literal) 
\u 
Especifica um caractere especial padrão 
Unicode usando quatro dígitos hexadecimais 
(inserido imediatamente ao lado do literal) 
\\ Barra invertida 
\’ Apóstrofo 
\” Aspas 
\0 Zero binário ou nulo 
\a Toca um alarme 
 
 
Programação Aplicada – Microsoft .NET usando C# 60 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
4.2 Operações com variáveis string 
 
Existem diversas operações definidas para strings. As principais são: 
Operação Propósito 
== 
 
Para comparar valores 
+ 
 
Para concatenar 
 
 
4.3 Métodos 
 
A classe String que se refere ao tipo de dados, fornece um grande conjunto 
de métodos para a manipulação de string. 
 
 
Método Propósito 
Compare 
 
Comparar dois objetos string 
Concat 
 
Concatena uma ou mais strings 
Copy 
 
Copia a string corrente 
 
 
5 ENUMERAÇÕES, ESTRUTURAS E ARRAYS 
 
 Enumerações são alternativas às constantes e fornecem um caminho para 
agrupar constantes de forma lógica. O uso de enumerações é muito útil quando uma 
variável pode conter apenas um conjunto específico de valores. 
Para declarar uma enumeração, use a palavra-chave enum, acompanhada 
do nome da variável e dos valores iniciais. 
Enum Nome : TipodeDados 
Programação Aplicada – Microsoft .NET usando C# 61 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
{ 
 varEnumerador1 = valor, 
 varEnumerador2 = valor 
} 
Estruturas em C# permitem a implementação de variáveis compostas 
heterogêneas. São conhecidas também como structures, em inglês. A palavra 
reservada struct é utilizada para a declaração de uma estrutura. A sintaxe de uma 
estrutura é: 
Struct nomedaestrutura 
{ 
 // Declarações das variáveis membro. Por exemplo 
 public TipodeDados NomeVariavel; 
} 
Assim como as enumerações representam um agrupamento lógico de 
constantes, arrays são agrupamentos lógicos de variáveis. Basicamente, o uso de 
arrays é aplicado para o armazenamento de valores a partir de um índice. Em C#, 
um array é um tipo de dado por referência, desta forma, você pode criar um array 
usando o operador new. A sintaxe para declaração de um array é: 
 TipodeDados[] identificador declaração; 
 
 
6 CONSTRUINDO EXPRESSÕES 
 
 As expressões são construídas de operadores e operandos. Os operadores 
de uma expressão indicam quais as operações aplicadas nos operandos. Exemplos 
de operadores incluem adições e concatenações, subtração, multiplicação e divisão. 
O C# tem mais ou menos os mesmos operadores da linguagem C. Observe a lista 
abaixo, ordenada por precedência (do maior para o menor). 
 
Tipo Operador 
Primários 
 
(x) x.y f(x) a[x] x++ x-- new typeof 
sizeof checked unchecked 
 
Programação Aplicada – Microsoft .NET usando C# 62 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Tipo Operador 
Unários 
 
+ - ! ~ ++x --x (T)x 
 
Multiplicativos 
 
 
* / % 
 
Aditivos 
 
 
+ - 
 
Deslocamento 
 
 
<< >> 
 
Relacional 
 
 
< > <= >= is 
 
Igualdade 
 
 
== != 
 
E Lógico 
 
 
& 
 
Ou exclusivo lógico 
 
 
^ 
 
Ou Lógico 
 
 
| 
 
E Condicional 
 
 
&& 
 
Ou Condicional 
 
 
|| 
 
Condicional 
 
 
?: 
 
Atribuição 
 
 
= *= /= %= += -= <<= >>= &= ^= |= 
 
Programação Aplicada – Microsoft .NET usando C# 63 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Síntese 
 
Nesta aula fizemos nossa primeira incursão ao código de programação da 
linguagem C#. Analisamos um código de programação básico, para que você tenha 
o entendimento fundamental das regras de construção de programas na linguagem. 
A mensagem principal desta aula foi lhe apresentar as regras e orientações 
para trabalhar com variáveis e tipos de dados na linguagem. 
A linguagem C# é completamente tipada, ou seja, você precisa determinar o 
tipo de dados que deseja trabalhar, para obter otimização e resultados adequados 
às suas soluções. 
Vimos também um recurso relevante principalmente para a construção de 
soluções Console (baseadas em caractere): o uso dos recursos de manipulação de 
Strings. O tipo de dados String permite que você manipule o conteúdo da cadeia de 
caracteres armazenada na variável, usando um grande número de métodos e 
literais. 
Na próxima aula daremos mais um passo na incursão da linguagem, 
conhecendo as regras e orientações para a implementação de lógica, através dos 
fluxos de controle. 
Até lá. 
 
 
Exercícios Propostos 
 
1) Qual a palavra reservada do C# utilizada para informar ao compilador as 
classes que deverão ser utilizadas na aplicação? 
a.( ) System 
b.( ) Namespace 
c.( ) Using 
d.( ) Class 
2) Defina e apresente um exemplo de Modificador. 
______________________________________________________________
______________________________________________________________
____________________________________________________________________________________________________________________________ 
Programação Aplicada – Microsoft .NET usando C# 64 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3) Para que servem os tipos de dados definidos pelos usuários? Apresente um 
exemplo. 
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________ 
4) Avalie o código abaixo e marque as afirmativas corretas. 
Console.WriteLine( "{0}\n{1}\n{2}", "Curso", "Microsoft", "C#" ); 
a.( ) A instrução apresenta um erro; 
b.( ) Apresenta o texto em uma única linha “Curso Microsoft C#” 
c.( ) Apresenta o texto em duas linhas da seguinte forma: 
 Curso 
 Microsoft C# 
 
d.( ) Apresenta o texto em três linhas da seguinte forma: 
 Curso 
 Microsoft 
C# 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 65 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 4 
CONTROLE DE FLUXO EM C# 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Implementar lógica de programação em algoritmos 
usando declarações de controle de fluxo dos dados. 
 
 
Conteúdos da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
terminar, assinale o conteúdo já estudado. 
� Blocos de Código; 
� Operadores; 
� Instruções de controle de fluxo; 
� Instruções IF, IF...ELSE e Switch; 
� Instruções While e Do/While; 
� Instrução For. 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 66 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Prezado(a) aluno(a), 
Bem-vindo(a) à quarta aula do módulo de programação aplicada com C#. 
Até o momento nos inteiramos das regras de sintaxe da linguagem e 
implementamo o código convencional em algoritmos. Nesta aula, você irá aprender 
como construir lógica condicional em seus programas, usando instruções de fluxo de 
dados. 
Boa aula! 
 
 
1 BLOCOS DE CÓDIGO 
 
 Antes de iniciar a construção de um programa para resolver um problema, é 
fundamental que se obtenha um entendimento claro do problema e se planeje a 
forma como será resolvido. Os algoritmos criados para atender um plano de solução, 
normalmente se utilizam de blocos de código para conduzir as informações dentro 
das condições impostas pelo problema. Por isso, é muito comum o uso de lógica 
booleana nos algoritmos, pois, usando instruções de controle de fluxo de dados, 
podemos determinar as condições que serão avaliadas durante o processamento do 
progama e qual o procedimento que deverá ser realizado, de acordo com o 
resultado do teste lógico aplicado. 
 Cada conjunto de instruções para atender uma determinada condição da 
lógica implementada no algoritmo é chamado de bloco de código. Normalmente, 
para cada resultado esperado do teste lógico, há um conjunto de instruções que 
serão executadas pelo programa. 
 
2 OPERADORES 
 
 As expressões utilizadas em lógica condicional são construídas de 
operadores e operandos. Os operadores de uma expressão indicam quais as 
operações aplicadas nos operandos. Exemplos de operadores incluem adições e 
concatenações, subtração, multiplicação e divisão. O C# tem mais ou menos os 
mesmos operadores da linguagem C. Observe a tabela abaixo, ordenada por 
precedência (do maior para o menor). 
 
Programação Aplicada – Microsoft .NET usando C# 67 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Tipo Operador 
Primários 
(x) x.y f(x) a[x] x++ x-- new typeof 
sizeof checked unchecked 
 
Unários 
 
+ - ! ~ ++x --x (T)x 
 
Multiplicativos 
 
* / % 
 
Aditivos 
 
+ - 
 
Deslocamento 
 
<< >> 
 
Relacional 
 
< > <= >= is 
 
Igualdade 
 
== != 
 
E Lógico 
 
& 
 
Ou exclusivo lógico 
 
^ 
 
Ou Lógico 
 
| 
 
E Condicional 
 
&& 
 
Ou Condicional 
 
|| 
 
Condicional 
 
?: 
 
Atribuição 
 
 
= *= /= %= += -= <<= >>= &= 
^= |= 
 
Programação Aplicada – Microsoft .NET usando C# 68 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3 INSTRUÇÕES DE CONTROLE DE FLUXO 
 
 A linguagem C# oferece suporte às instruções convencionais para o controle 
de fluxo de dados e os blocos de código a serem construídos. 
 
3.1 Estruturas de seleção 
 
 As estruturas de seleção permitem determinar qual o bloco de código que 
deverá ser executado, de acordo com o resultado de um teste o lógico. A linguagem 
C# oferece três tipos de estruturas de seleção: 
• a instrução IF: executa um determinado bloco de código, se uma 
condição for verdadeira, caso contrário não executa o código; 
• a declaração IF...ELSE: é uma extensão da instrução IF, pois permite que 
um outro bloco de código possa ser executado, caso a condição seja falsa; 
• a instrução SWITCH: permite que vários blocos de código estejam em 
condição de execução, de acordo com o valor de uma expressão. Essa 
instrução permite que você tenha várias condições lógicas e, de acordo 
com o seu resultado, dispara a execução de um bloco específico para o 
resultado obtido. 
 
3.2 Instruções de repetição 
 
 A linguagem C# oferece quatro tipos de estruturas de repetição. O tipo de 
instrução é utilizada quando o programador deseja executar determinado bloco de 
código, de acordo com uma condição lógica e mantê-lo em execução até que a 
condição lógica mude ou deixe de atender à condição estabelecida. 
• While: executa o bloco de código enquanto uma condição for verdadeira. 
O teste é executado ao INÍCIO; 
• Do/While: executa o bloco de código enquanto uma condição for 
verdadeira. O teste é executado ao FINAL; 
• For: o bloco de código é executado determinado número de vezes, 
especificado na condição da instrução e baseado em um contador interno. 
 
Programação Aplicada – Microsoft .NET usando C# 69 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
4 INSTRUÇÕES IF, IF...ELSE E SWITCH 
 
A instrução if é de uso comum nas linguagens de desenvolvimento de 
sistemas. Seu objetivo é executar condicionalmente algum código. Seguindo a teoria 
de Estrutura de Dados, a declaração if muda a execução do programa de acordo 
com um valor baseado em uma condição booleana. Sua sintaxe em C# é: 
 if (expressão) 
 comando1; 
 [else 
 Comando2;] 
 Detalhando a estrutura do comando: 
• Expressão: uma expressão pode ser implicitamente convertida para um 
valor do tipo bool. Se verdadeiro, o comando1 é executado, senão o 
comando2 (caso esteja presente) será executado; 
• Comando1: A declaração que deve ser executada caso a expressão 
retornar verdadeira; 
• Comando2: A declaração que deve ser executada caso a expressão 
retornar falsa. 
 
Observações: 
• A expressão deve retornar um valor booleano. Os números inteiros 
não podem ser utilizados como se fosse booleano, como no C/C++; 
• A cláusula else é opcional e indica o que deve ser feito caso a 
expressão seja falsa; 
• Caso seja necessário utilizar vários comandos, use um bloco com 
chaves { }; 
• Existe a sintaxe else if para encadear várias decisões. Observe que 
o comando switch, descrito adiante, pode ser utilizado com strings e 
pode ser uma alternativa quando os encadeamentos de IF são 
muito complexos. A sintaxe do else if é: 
 if (condicao1) 
 comando1; 
 else if (condicao2) 
 comando2; 
 else if (condicao3) 
Programação Aplicada – Microsoft .NET usando C# 70 
 
 
SOCIESC – Sociedade Educacionalde Santa Catarina 
 
 comando3; 
 ... 
 Else 
 comandoN; 
 
A instrução switch é usada para comparar uma expressão a uma série de 
constantes. É basicamente uma extensão da declaração if, considerando que pode: 
controlar múltiplos testes em uma simples declaração, verificar uma expresão de 
teste baseada em vários valores e executar código quando uma expressão de teste 
atende a um dos valores que você deseja testar. 
É importante observar que a sintaxe do switch em C# é diferente da sintaxe 
no C++. Caso você deseje controlar o salto entre a validação do CASE1 para o 
CASE2 no C#, o CASE1 não pode conter qualquer código executável no seu corpo. 
O C++ não possui a capacidade de saltar entre um case e outro (por exemplo, uma 
declaração goto). Sua sintaxe em C# é: 
 switch (expressão) 
 { 
 constante1; 
 comando1; 
 break; 
 constante2; 
 comando2; 
 break; 
 constanteN; 
 comandoN; 
 break; 
 [default: 
 comandoX;] 
 } 
 
Observações: 
• Você pode associar mais de uma constante a cada bloco de código; 
• Os blocos de código devem ser mutuamente exclusivos, garantido pela 
presença de uma cláusula break (ou goto); 
• O bloco default é chamado caso nenhuma das opções seja tomada; 
• Você pode usar qualquer tipo por valor ou string na expressão. 
 
Programação Aplicada – Microsoft .NET usando C# 71 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Abaixo, um exemplo de código usando a declaração switch: 
 using System; 
 
 class ExemploSwitch 
 { 
 static void Main() 
 { 
 
 Console.Write("Adivinhe meu número (1-5): "); 
 int input = Convert.ToInt32(Console.ReadLine()); 
 
 switch (input) 
 { 
 case 1: 
 Console.WriteLine("Errado!.\n"); 
 break; 
 case 2: 
 case 3: 
 Console.WriteLine("Nem 2 nem 3 está correto.\n"); 
 break; 
 case 4: 
 goto case 1; 
 case 5: 
 Console.WriteLine("CERTO!\n"); 
 break; 
 default: 
 Console.WriteLine("Não é um valor válido!\n"); 
 break; 
 } 
 } 
 } 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 72 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
5 INSTRUÇÕES WHILE E DO/WHILE 
 
Um tipo de loop em C# é o while, responsável por executar uma declaração 
(ou um conjunto de declarações) até que uma especificada expressão retorne um 
valor falso. 
 while (expressão) declaração 
 
 
 class ExemploWhile 
 { 
 static void Main() 
 { 
 System.Console.Write("Digite quit para sair: "); 
 string text = System.Console.ReadLine(); 
 
 while (text != "quit") 
 { 
 System.Console.Write("Digite quit para sair: "); 
 text = System.Console.ReadLine(); 
 } 
 } 
 } 
 
A instrução do...while executa uma declaração (ou um conjunto de 
declarações) repetidamente até que uma especificada expressão retorne um valor 
false. Diferente do loop while, esse loop efetua o teste após a execução do corpo do 
loop. 
 do declaração while (expressão) 
 
 
 
 class ExemploDoWhile 
 { 
 static void Main() 
 { 
 string text; 
 
 do 
Programação Aplicada – Microsoft .NET usando C# 73 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 { 
 System.Console.Write("Digite quit para sair: "); 
 text = System.Console.ReadLine(); 
 } while (text != "quit"); 
 } 
 } 
 
 
6 INSTRUÇÃO FOR 
 
É o loop mais básico e o favorito dos programadores. Simplesmente executa 
uma declaração (ou um bloco de declarações) repetidamente até que a expressão 
de teste retorne o resultado false. 
 for ([inicializadores]; [expressão]; [iterações]) declarações 
 
 
 class ExemploFor 
 { 
 static void Main() 
 { 
 System.Console.Write("Quantas tentativas você deseja?"); 
 int Max = int.Parse(System.Console.ReadLine()); 
 
 for (int loopIndex = 1; loopIndex <= Max; loopIndex++) 
 { 
 System.Console.WriteLine("Bom trabalho!"); 
 } 
 } 
 } 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 74 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Síntese 
 
Nesta aula você aprendeu como construir programas em C# usando lógica 
condicional, aplicando o seu conhecimento sobre estruturas de programação. Saber 
utilizar a condição corretamente e o laço ou repetição adequado para o problema, é 
um dos grandes diferenciais de um programador. 
Vimos como os blocos de código são separações lógicas importantes que 
implementamos em um programa. Também foi apresentado o elemento chave no 
trabalho com lógica condicional: os operadores. Este é outro aspecto relevante que 
o progamador precisa conhecer, para que sua lógica apresente a performance e o 
resultado esperado. 
Finalmente, conhecemos cada uma das opções para lógica condicional, como 
também as regras e orientações para a sua implementação na linguagem C#. 
O assunto visto é o passo definitivo para que você possa construir algoritmos 
usando C#. Na próxima aula, vamos iniciar um novo e fundamental assunto para o 
desenvolvimento na plataforma .NET: a programação orientada a objetos. 
Te vejo na próxima aula. 
 
 
Exercícios Propostos 
 
1) Cite os três tipos de instruções de repetição suportadas pela linguagem C# 
______________________________________________________________
______________________________________________________________ 
______________________________________________________________ 
 
 
2) Qual a diferença entre a instrução IF e SWITCH? 
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________ 
 
 
Programação Aplicada – Microsoft .NET usando C# 75 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3) Qual a diferença entre as instruções DO e DO/WHILE? 
______________________________________________________________
______________________________________________________________
______________________________________________________________ 
4) Dado dois inteiros armazenados nas variáveis Valor1 e Valor2, que teste 
lógico podemos realizar para verificar se um ou outro (mas não ambos) é 
menor que 10? 
______________________________________________________________
______________________________________________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 76 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 5 
PROGRAMAÇÃO ORIENTADA A 
OBJETOS EM C# 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Aplicar conceitos de programação orientada a objetos 
(OOP), utilizando a plataforma .NET e a linguagem C#; 
� Conhecer o .NET Framework Class Library; 
� Entender como as técnicas de OOP são implementadas na 
linguagem C#. 
 
Conteúdo da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
terminar, assinale o conteúdo já estudado. 
� Classes e objetos; 
� Tudo em .NET é baseado em objetos; 
� Campos e Propriedades; 
� Métodos; 
� Construtores e Destrutores; 
� Construindo uma classe na prática. 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 77 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Prezado(a) aluno(a), 
Bem-vindo(a) à aula mais importante destemódulo. A programação 
orientada a objetos foi, definitivamente, adotada pelos programadores e 
tecnologias da atualidade. A plataforma Microsoft .NET possui internamente todo o 
suporte a objetos e oferece amplo conjunto de recursos, para que o programador 
possa explorar o que há de mais poderoso na plataforma, usando metodologia de 
desenvolvimento orientada a objetos. Por isso considero esta aula importante. 
O objetivo principal desta aula é fazê-lo (a) aplicar os conceitos da OOP na 
plataforma .NET usando a linguagem C#. Vamos revisitar alguns conceitos, sob a 
ótica da plataforma .NET e da linguagem C#. Veremos como o uso da OOP permite 
o mais alto nível de construção no uso da .NET. Também pretendo desenvolver em 
você a percepção de que a linguagem C# é a MELHOR opção para o 
desenvolvimento .NET, já que ela nasceu com total orientação para o uso dos 
recursos da plataforma, sem contudo, deixar de se utilizar das técnicas de 
programação orientada a objetos. 
É uma excelente oportunidade para que você veja, na prática, como a OOP é 
realmente uma abordagem adequada para os desafios atuais de programação e 
perceber como a plataforma .NET absorveu essas práticas. 
Boa aula! 
 
 
1 OBJETOS E CLASSES 
 
 Você já aprendeu que um objeto é um bloco de construção de um aplicativo 
orientado a objetos. Reforço aqui a comparação entre o conceito de objetos da OOP 
e os objetos da vida real. Na vida real, quando nos referimos a um objeto várias 
“abstrações” podem vir a nossa mente: 
 
 Quando conversamos com alguém sobre o computador que temos em 
casa, esse alguém, de imediato, recebe em sua mente a imagem de um computador 
que “conhece”. Isto é abstração. 
Você não especificou as características de seu computador,por isso, seu 
interlocutor poderá imaginar um computador muito diferente daquele a que você está 
se referindo. A experiência e o conhecimento foi usando um computador Macintosh 
Programação Aplicada – Microsoft .NET usando C# 78 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
em uma aula da faculdade e você possui um computador PC em casa, o que pode 
gerar certas diferenças entre o que você fala e o que a outra pessoa está 
entendendo. 
A abstração é um ato natural do ser humano, conseqüência de informações 
recebidas pelo contato com o mundo exterior. À medida que uma pessoa vive, 
observa, ouve e experimenta “coisas” durante sua vida, cria mapas mentais, 
enriquecendo seu conhecimento e capacidade de interagir com o meio em que vive. 
Apesar desse assunto ser um tanto filosófico para o contexto, é fundamental 
que você compreender a abstração, por ser ela a atividade fundamental para a 
construção de programas orientados a objetos. 
Podemos afirmar, diante do acima exposto, que a abstração não é apenas 
atribuir um nome, um conceito. A abstração também inclui a noção de 
comportamento associado ao conceito, sua aplicação e uso. 
 
1.1 Objetos em C# 
 
 A criação de objetos, na linguagem C#, é comparada às estruturas de dados 
que vimos na aula 3, já que um objeto contém membros de variáveis e tipos de 
função específicos para o armazenamento e manipulação do objeto. As variáveis do 
objeto armazenam as informações sobre suas propriedades e as funções contidas 
no objeto fornecem funcionalidades e formas de como utilizá-lo, o que pode ser 
chamado de método de uso do objeto. 
 Os objetos, na linguagem C#, são criados a partir de tipos de dados, da 
mesma forma como trabalhos com variáveis. O tipo de um objeto é conhecido por 
um nome especial na OOP, a sua classe. Uma classe é o bloco principal de 
construção de sistemas orientados a objetos, desta forma, podemos considerá-la 
como “uma expressão da programação para a abstração de um conceito”. Uma 
classe serve para encapsular um conceito, mais especificamente define o estado 
(propriedades) e o comportamento (métodos) relacionados ao conceito (figura 33). 
Programação Aplicada – Microsoft .NET usando C# 79 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 33 – Diagrama UML de uma classe 
 
 As classes são modelos de objetos com o objetivo de servir como base para a 
criação de objetos que, a partir de uma classe, em OOP chama-se instanciação, ou 
seja, o objeto gerado é uma instância da classe que o originou (figura 34). “Instância 
de uma classe” e “objeto” são a mesma coisa. 
 
Figura 34 – Diagrama UML de um objeto 
 
 Um sistema orientado a objetos pode possuir dezenas de classes, por isso, é 
extremamente comum o relacionamento entre uma classe e outra, dentro do 
sistema. Devemos definir qual o papel (ou responsabilidade) de cada objeto em seus 
relacionamentos, garantindo que a execução do programa se mantenha dentro do 
esperado. 
 
2 TUDO NA PLATAFORMA .NET É BASEADO EM OBJETOS 
 
 Apesar de já termos tratado bastante sobre a plataforma .NET na primeira 
aula deste módulo, agora vamos dar maior ênfase a um elemento importante da 
plataforma neste momento: a biblioteca de classes. 
 A plataforma .NET funciona completamente orientada a objetos e como uma 
de suas grandes propostas é aumentar a produtividade na construção de sistemas, 
a Microsoft inseriu uma biblioteca de classes, ampla e poderosa, para fornecer ao 
Programação Aplicada – Microsoft .NET usando C# 80 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
programador recursos reutilizáveis que não apenas facilitem, mas também acelerem 
o desenvolvimento de sistemas. 
 A biblioteca foi batizada de “Biblioteca de Classes Base”, ou, em inglês, 
“Base Class Library (BCL)”. Esta biblioteca oferece um grande conjunto de classes 
que contemplam desde um sistema de janelas até classes para entrada e saída de 
dados, permitindo trabalhar com elementos gráficos, sockets para a comunicação de 
dados, gerenciamento de memória, acesso a banco de dados, etc. Faz parte da 
arquitetura do Common Language Runtime da plataforma .NET, que fornece os 
componentes fundamentais para a execução de aplicações .NET (figura 35). 
 A BCL foi organizada em namespaces e, por sua vez, possui um amplo 
conjunto de classes. 
 
Figura 35 – Organização dos componentes da BCL 
 
 Então, de acordo com a sua necessidade na construção de determinada 
funcionalidade em seu sistema, a BCL pode oferecer uma classe específica para 
suprir a necessidade. Na verdade, a expectativa é que ofereça tudo o que o 
programador precisa na grande maioria das soluções: 
 
 
Programação Aplicada – Microsoft .NET usando C# 81 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
 
• Recursos para suporte aos tipos, conversão e formatação de dados; 
• Facilidades para a manipulação de grande quantidade de dados na 
memória, fazendo uso de coleções; 
• Globalização: capacidades para suporte a múltiplos idiomas e 
particularidades locais em sistemas globais; 
• Entrada/Saída: suporte para a manipulação de arquivos armazenados no 
sistema operacional, como arquivos do tipo texto e binário; 
• Capacidades para suporte à comunicação usando redes de computadores 
e, na Internet, protocolos comuns como o HTTP, TCP/IP Sockets, etc.; 
• Várias funcionalidades de apoio para a implementação de segurança em 
suas aplicações. 
 
3 CAMPOS E PROPRIEDADES 
 
 O estado de um objeto é descrito por suas propriedades. Quando falamos 
estado, é uma referências às condições em que se apresentam o objeto, como por 
exemplo, sua cor, forma e aparência. Dessa forma, o conjunto dos atributos (ou 
propriedades) do objeto determinam como é o seu estado. 
 Na linguagem C#, estas informações são armazenadas em variáveis dentro 
da classe, também chamadas de campos. Quando um objeto “instancia” uma classe 
que possui campos, o objeto recebe uma cópia de toda a estrutura da classe, mas 
com áreas de armazenamento privativasdo objeto que está instanciando a classe. 
 Há aqui uma diferença importante: os campos permitem que o usuário 
armazene ou acesse o valor contido na classe, por isso fornece seu campo para 
todo objeto que instanciá-la. Já as propriedades permitem que o programador defina 
se deseja ou não que seja utilizado, escondendo algumas particularidades da 
classe. As propriedades permitem ao programador interferir na forma como elas 
serão utilizadas e mantém maior controle sobre as atividades do objeto. 
Alguns autores afirmam que, embora essa forma de implementação de 
campos, quando públicos, esteja disponível, não é uma boa prática de programação, 
Programação Aplicada – Microsoft .NET usando C# 82 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
por estar permitindo o acesso direto aos dados da classe. Ao invés disso, sugerem o 
uso de métodos ou propriedades. 
 
4 MÉTODOS 
 
 Os métodos são funções construídas na classe e estão expostas para uso 
pelo programador. Seu comportamento é o mesmo da implementação de uma 
função convencional, permitindo o uso de parâmetros e retornando valores a partir 
do processamento do método. 
 
5 CONSTRUTORES E DESTRUTORES 
 
 Quando realizamos a instanciação de uma classe, um objeto é criado na 
memória, a este processo chamamos de inicialização, pois não precisamos nos 
preocupar em reservar memória para armazenar o objeto. 
 Em determinados momentos, precisamos interferir na inicialização de um 
objeto, para que possamos manipular os membros de uma classe antes de 
efetivamente o objeto ser inicializado. Para essa tarefa, usamos construtores, que 
são chamados pela palavra reservada em C#, new. Quando definimos nenhum 
construtor, o compilador C# define um construtor padrão. Uma classe pode conter 
mais de um construtor, dessa forma, é possível realizar várias formas para inicializá-
la, além do padrão. 
 Já os destrutores são utilizados para realizar a liberação de memória e dos 
recursos do sistema operacional, após a finalização dos trabalhos com determinado 
objeto. A plataforma .NET fornece meios automáticos para a limpeza de memória, 
isto significa que não precisamos nos preocupar em realizar essa tarefa. Assim 
como os construtores, também podemos encontrar situações onde precisamos 
interferir no momento que o objeto está sendo destruído, para que possamos realizar 
alguma tarefa particular antes de o objetivo ser efetivamente destruído. 
 
5.1 Garbage Collection 
 
 Existem várias formas de um objeto ficar na memória desnecessariamente, 
seja pela manutenção do programa que o chamou e não destruiu a instância 
Programação Aplicada – Microsoft .NET usando C# 83 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
explicitamente,seja por causa de uma referência que o tenha deixado “órfão”. A esse 
tipo de situação, na plataforma .NET é chamado de Lixo (Garbage). 
 A plataforma .NET possui um recurso interno chamado Garbage Collection, 
responsável por realizar periodicamente uma avaliação nos objetos armazenados na 
memória do computador. Os casos em que não há mais referências (ófãos), são 
destruídos automaticamente, liberando a memória correspondente. 
 O principal objetivo da Microsoft na inserção desse recurso é facilitar o 
trabalho do programador, desobrigando-o de algumas tarefas triviais na OOP, cujo 
esquecimento é comum. A condição de risco mais comum para os programas que 
armazenam dados na memória, de forma indefinida e sem a limpeza de dados 
desnecessários, é chamada de memory leak (a tradução pode ser “transbordo de 
memória”). 
 
6 CONSTRUINDO UMA CLASSE NA PRÁTICA 
 
 Avalie o código seguinte: 
// Classe utilizada para demonstrar os conceitos básicos de OOP 
using System; 
 
public class Computador 
{ 
private string categoria; // variável interna da classe 
 
// Propriedade para armazenar a categoria do computador 
public string Categoria 
{ 
 get 
 { 
 return Categoria; 
 } 
 set 
 { 
 Categoria = value; 
 } 
} // fim da definição da propriedade 
 
 public void ApresentaDados() 
Programação Aplicada – Microsoft .NET usando C# 84 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 { 
 Console.WriteLine( "A descrição para o computador é\n{0}!", 
 this.Categoria ); // Apresenta a descrição do computador 
 } 
 } 
 
 
6.1 Construindo a classe usando o Visual C# 2005 Express 
 
1. Execute o Visual C# 2005 Express, se já não estiver aberto; 
2. Clique no comando Create: Project...; 
3. Na janela New Project, selecione o item Console Application e, na caixa de 
texto Name, digite “Exercicio3” e clique no botão OK; 
4. No menu Project, execute o comando Add Class...; 
5. Na janela Add New Item (figura 36), digite no campo Name “Computador” e 
clique no botão OK; 
 
 
Figura 36 – Janela para a inserção de uma classe 
 
6. Abaixo do primeiro sinal de chaves dentro da classe, declare uma variável 
String com o nome “descricao” (d minúsculo). Essa é a variável que fará o 
armazenamento da categoria dentro da classe; 
private string categoria; 
Programação Aplicada – Microsoft .NET usando C# 85 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
7. Abaixo desta declaração, vamos criar uma propriedade na classe com o nome 
“Categoria”; 
public string Categoria 
{ 
 get 
 { 
 return Categoria; 
 } 
 set 
 { 
 Categoria = value; 
 } 
} 
8. Abaixo do código da propriedade, vamos criar um método para a classe: 
public void ApresentaDados() 
 { 
 Console.WriteLine( "A categoria do computador é\n{0}!", 
 this.Categoria ); // Apresenta a descrição do computador 
 } 
9. Salve a solução. 
 
6.2 Instanciando a classe e usando a propriedade e método 
 
1. Abra a classe Program.cs; 
2. Digite o seguinte conteúdo: 
Computador meuComp = new Computador(); 
meuComp.Categoria = "PC"; 
meuComp.ApresentaDados(); 
 
3. Para ver o resultado da aplicação, execute o comando “Start without 
Debugging” do menu Debug. O resultado deverá ser o mesmo que 
mostramos na figura 37: 
 
Programação Aplicada – Microsoft .NET usando C# 86 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 37 – Janela do console do Windows, resultado da aplicação 
 
 
 
Síntese 
 
Agora sim estamos vendo os conceitos da programação orientada a objetos 
na prática. Estamos ainda no início dessa incursão prática, mas agora você está em 
condições de entendimento do porquê de algumas definições conceituais e agora já 
é possível concluir sobre as vantagens do método da OOP. 
No início desta aula, fizemos uma leve associação entre os conceitos da OOP 
e a plataforma .NET. Além disso, discutimos um pouco sobre como os elementos da 
plataforma estão organizados e como podem ser utilizados. Na próxima aula 
falaremos mais sobre isso. 
Criamos uma classe que contém propriedades e métodos e entendemos 
quando devemos utilizar cada uma das peças que compõem uma classe. Como 
exercício prático, criamos uma classe e a instanciamos em um programa 
desenvolvido em Visual C# 2005 Express. 
Na próxima aula, vamos adiante sobre os conceitos da OOP e seu uso na 
linguagem C#. As peças de seu conhecimento estarãoencaixando-se a cada nova 
aula. 
Vamos em frente! 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 87 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Exercícios Propostos 
 
1) Descreva a função da Base Class Library da plataforma .NET. 
______________________________________________________________
______________________________________________________________ 
______________________________________________________________ 
______________________________________________________________ 
2) Uma instância de uma classe é a mesma definição de um objeto? Caso 
afirmativo, por quê? 
______________________________________________________________
______________________________________________________________ 
______________________________________________________________ 
______________________________________________________________ 
3) É obrigatório o uso de destrutores para a programação de classes? Explique 
por que. 
______________________________________________________________
______________________________________________________________ 
______________________________________________________________
______________________________________________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 88 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 6 
TÉCNICAS DE OOP USANDO C# 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Implementar os blocos de tratamento de erros em tempo de 
execução; 
� Ampliar os conhecimentos sobre métodos e parâmetros; 
� Utilizar parâmetros para identificar sobrecarga de métodos; 
� Implementar programas que se utilizem de Interfaces, 
Herança e Polimorfismo. 
 
Conteúdo da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
terminar, assinale o conteúdo já estudado. 
� Trabalhando com exceções; 
� Métodos e parâmetros; 
� Sobrecarga de Métodos; 
� Interfaces, Herança e Polimorfismo. 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 89 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Prezado(a) aluno(a), 
Como vimos até agora, você pode utilizar a linguagem C# para construir 
programas muito similares aos de 1970, usando uma simples abordagem 
de programação estruturada. Isso ainda é possível. 
Mas a linguagem C# libera todo o seu potencial quando você utiliza as 
técnicas de OOP e constrói programas que venham a se beneficiar desse método de 
programação. 
Nesta aula você construirá programas em C# usando os principais recursos 
da OOP. Um assunto extremamente relevante e muito comum em seu uso é o 
“tratamento de erros em tempo de execução”, pois permite ao programador controlar 
melhor a previsibilidade do seu programa. Depois vamos tratar sobre métodos e 
suas aplicações, conhecendo algumas particularidades e conceitos associados à 
OOP. Finalmente, vamos conhecer e implementar código de programação com as 
principais técnicas de OOP. 
Veja que estamos em pleno período de conhecimento sobre a OOP e sua 
implementação usando C#. 
Boa aula! 
 
 
1 TRABALHANDO COM EXCEÇÕES 
 
 Uma exceção ocorre quando um programa encontra qualquer problema não 
esperado, por exemplo: tentativa de execução do programa fora de um bloco de 
memória previamente utilizado, ou tentativa de ler um arquivo que não existe mais 
no local de origem. Estes problemas não são necessariamente causados por erro de 
programação, ocorrem com a violação de certas “expectativas” que você construiu 
para o ambiente de execução do programa. 
 Quando seu programa é capaz de controlar as situações excepcionais e, se 
possível, “de forma elegante” recuperar-se do problema sem gerar qualquer 
desconforto ao usuário, este recurso chama-se tratamento de erros em tempo de 
execução (termo em inglês é exception handling). Na maioria das linguagens atuais 
há esse recurso e não poderia ser diferente no C#. 
Programação Aplicada – Microsoft .NET usando C# 90 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Na verdade, a plataforma .NET oferece um conjunto de classes pré-definidas 
para lhe ajudar a trabalhar com situações excepcionais em seus programas, 
permitindo que você crie sua própria classe de tratamento de erro e e que 
especifique mensagens de erros específicas para sua aplicação. Você pode fazer 
isso derivando a classe ApplicationException do .NET. 
 A linguagem C# ajuda a disparar e controlar as exceções de seu programa 
através das declarações try, catch, finally e throw. 
 
1.1 A estrutura do bloco para tratamento de erros 
 
 A estrutura de um bloco de código, para realizar o controle de exceções, é 
implementada por um bloco de código composto de três palavras reservadas do C#: 
try, catch e finally. Dentro desse bloco, você pode colocar qualquer declaração de 
comando do C#, que pode inclusive conter outros blocos try, ou chamar um método, 
acionado dentro do bloco de tratamento de erros. 
 Em resumo, em tempo de execução você terá uma hierarquia de blocos try 
que estarão um dentro de outro. Quando uma exceção ocorrer em qualquer um dos 
pontos, ao invés de executar a linha de código corrente (que está com o erro), em 
tempo de execução será procurado o primeiro bloco try mais próximo do código 
dentro da hierarquia de blocos. Então o controle passará para o código que está 
dentro do bloco catch (se houver algum) e o comando finally, associado ao bloco try 
será executado. Um comando try não pode viver sozinho, precisa ser acompanhado 
de um ou mais blocos catch e, se necessário, terminado com o bloco finally. 
try 
{ 
// Código a ser executado aqui. Pode ser qualquer comando C# 
} 
catch (System.Exception ex) 
{ 
// Código para controlar a exceção aqui 
} 
finally 
{ 
// Código a ser executado após a tentativa de execução 
} 
 
Programação Aplicada – Microsoft .NET usando C# 91 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Você pode ter vários blocos catch, imediatamente após o bloco try, e cada 
bloco catch controla uma exceção de um tipo particular. Quando uma exceção 
ocorre em uma declaração dentro do bloco try, em tempo de execução, o programa 
procurará o bloco catch que controla aquele tipo de exceção. 
 O bloco finally contém o código que SEMPRE será executado, mesmo que 
ocorra ou não uma exceção. Normalmente, nesse bloco, colocamos um código de 
progarmação para realizar uma atividade após os trabalhos de exceção, como 
limpeza da memória ou exclusão de um arquivo temporário. Essa é uma boa prática 
de programação, pois mantém o ambiente de execução do sistema operacional 
adequado para uso. 
 
Não é obrigatório para um bloco try ter um bloco finally, porém, se você 
o implementar, haverá somente um bloco finally e sempre deverá ser 
declarado ao final do bloco try. 
 
 
1.2 A declaração throw 
 
 A declaração throw gera explicitamente uma exceção em seu código. Você 
poderá utilizá-la quando seu programa precisar “forçar” uma situação de exceção 
para atender a uma necessidade específica do problema. 
 Para utilizar a declaração throw, é necessário ter a instância de uma exceção. 
Para isso, utilize a palavra reservada new, conforme já vimos anteriormente sobre 
instanciação de classes. 
 O Visual C# 2005 Express oferece uma janela para a visualização dos tipos 
de exceção, que são listas por categoria e o namespace da biblioteca, e estão 
disponíveis no .NET Framework. As exceções mais comuns estão na categoria 
Common Language Runtime Exceptions (figura 38). 
 Para acessar a janela, execute o comando Exceptions, do menu Debug, ou 
a combinação de teclas CTRL+ALT+E.Programação Aplicada – Microsoft .NET usando C# 92 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 38 – Janela de de visualização das exceções disponíveis no .NET 
 
 
2 MÉTODOS E PARÂMETROS 
 
 Na construção de aplicações, você já aprendeu que a divisão da aplicação em 
unidades funcionais é uma prática comum. Esse é o princípio fundamental que a 
modelagem de uma aplicação precisa compor: a distribuição lógica das 
funcionalidades do sistema, através de blocos de código interdependentes. Essa 
prática, como você também já viu, permite capacidade para reuso de código de 
programação, aumentando-lhe a facilidade para manutenção. 
 Na linguagem C#, considerando que é orientada a objetos, você pode 
organizar sua aplicação em classes que contêm blocos de código, cuja 
funcionalidade específica na classe é chamada método. Um método é considerado 
membro da classe e executa uma determinada ação de acordo com sua utilização. 
A figura 39 exemplifica uma classe com método. 
Programação Aplicada – Microsoft .NET usando C# 93 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 39 – Exemplo de classe com métodos 
 
 Na prática, um método é um grupo de comandos em C# que trabalha em 
conjunto para realizar determinada tarefa, assim como uma função na programação 
estruturada. Todo método possui um identificador, nome que será utilizado para 
“executar” o método. Como falamos anteriormente, a declaração Main, é o método 
principal da aplicação C# e é o ponto de entrada do programa quando o usuário o 
executa. Em C# todo método está associado a uma classe. 
 Sintaxe para criar um método na classe: 
 Static void NomedoMétodo() 
 { 
 Comandos do C# que compõem o método 
 } 
 
 Para utilizar um método contido em uma classe, que significa “chamar” um 
método, utilizamos o comando em C#: 
 Objeto.Método() 
 
 
 
using System; 
 
class Exemplo 
{ 
 public static void TesteMetodo( ) 
Programação Aplicada – Microsoft .NET usando C# 94 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
{ 
 Console.WriteLine("Este é o método da classe exemplo"); 
} 
} 
 
class OutroExemplo 
{ 
static void Main( ) 
{ 
 Exemplo.TesteMedodo( ); 
} 
} 
 
Quando você utiliza um método dentro da própria classe que o contém, não 
precisa especificar o nome da classe, basta informar o nome do método a ser 
chamado (figura 40). 
 
 
Figura 40 – Exemplo de declarações chamando métodos 
 
O comando return pode ser utilizado dentro dos métodos, com o objetivo de 
enviar o retorno do resultado do método, imediatamente, para o ponto de onde foi 
chamado. 
 
 
static void ExampleMethod( ) 
{ 
 
Console.WriteLine("Exemplo de Mensagem usando um método"); 
 
return; 
 
Console.WriteLine("Mas este texto nunca será apresentado"); 
Programação Aplicada – Microsoft .NET usando C# 95 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
} 
 
 No exemplo acima, o comando return pára o processamento do método e 
retorna imediatamente para o ponto de código que o chamou, significando que o 
segundo comando, WriteLine, nunca será executado. 
 
2.1 Parâmetros 
 
 Parâmetros permitem que uma informação seja enviada para um método e 
também permitem que uma informação do método seja enviada como retorno para o 
ponto de código que o chamou. Quando criamos um método, podemos incluir em 
nossa declaração os parâmetros que deverão ser informados quando o método for 
utilizado. Esses parâmetros são informados dentro dos parentêses da declaração do 
método. 
 Cada parâmetro possui um nome e um tipo, que deverá representar e atender 
aos requisitos da informação, além de ser passada para o método. 
 
 
 public static void TesteMetodo(string Mensagem) 
{ 
 Console.WriteLine(Mensagem); 
} 
 
 Quando o programador chamar o método, poderá enviar o conteúdo desejado 
para o método a partir de seus parâmetros. veja o exemplo e a figura 41. 
 
 TesteMetodo(“Este é um exemplo de mensagem”); 
 
 
Programação Aplicada – Microsoft .NET usando C# 96 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 41 – Processamento de um método 
 
 É importante observar que um método pode conter vários parâmetros. Por 
isso, mantenha a mesma correlação entre os parâmetros enviados pela chamada do 
método e a mesma ordem da declaração dos parâmetros no método. 
 Existem três fomas para a passagem de parâmetros: 
1. Por valor: os dados são transferidos para o método e não poderão ser 
encaminhados para fora do método. Na verdade, o conteúdo dos 
parâmetros é uma cópia do argumento e não poderá ser modificado pelo 
método; 
2. Por referência: o argumento enviado para o método, através de seus 
parâmetros, poderão ser alterados, permitindo que o conteúdo de entrada 
no método possa ser diferente no conteúdo de saída. O parâmetro pode 
ser considerado, nesse caso, apenas um apelido para o argumento; 
3. Parâmetro do tipo out: existe a forma de passar um parâmetro usando a 
palavra reservada out. Essa forma de passagem é útil quando desejamos 
utilizar um parâmetro que necessariamente não corresponde ao tipo de 
dado enviado pelo código que chamou o método. 
Programação Aplicada – Microsoft .NET usando C# 97 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3 SOBRECARGA DE MÉTODOS 
 
 A sobrecarga de métodos ocorre quando há dois métodos em uma mesma 
classe com o mesmo nome. O compilador do C# distingue os métodos 
sobrecarregados comparando os parâmetros de cada um. Quando isso acontece, o 
compilador C# seleciona o método apropriado, avaliando a quantidade, o tipo e a 
ordem dos argumentos, entre os métodos envolvidos (figura 42). 
 Esse tipo de abordagem é muito útil quando se desejamos implementar 
métodos que realizem a mesma tarefa, mas que ligeiramente permitem ter um 
comportamento diferente, de acordo com certas condições. 
 
Figura 42 – Chamada de um método que possui sobrecarga 
 
 
4 INTERFACES, HERANÇA E POLIMORFISMO 
 
4.1 Interfaces 
 Você define uma interface da mesma forma que constrói uma classe, apenas 
substituindo a palavra reservada class para a palavra reservada interface (figura 
43). 
 
Figura 43 – Definição de Interface 
Programação Aplicada – Microsoft .NET usando C# 98 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 As interfaces são também conhecidas como contrato, que determinam regras 
a serem aplicadas quando houver a instanciação de uma classe. De maneira geral, 
quando uma classe é instanciada, a validação, se a implementação está correta, 
pode ser realizada de duas formas: 
1. Através do compilador, que fará a validação e não permitirá a compilação 
se algo estiver errado; 
2. Usando interfaces, que descrevem as regras para o uso de uma classe. 
Na prática, uma classe pode conter várias interfaces, determinando a forma 
como os membros serão validados em sua implementação. Os métodos das 
interfaces são implicitamente públicos, ou seja, você não precisa (na verdade não 
pode) utilizar a palavra reservada public, para permitir que determinado membro 
esteja acessível fora da classe (figura 44). 
 
Figura 44 – Exemplo de componentes de uma interface 
 
Uma classe em .NET já recebe naturalmente algumas interfaces advindas da 
própria plataforma, por exemplo: a IClonable, IDisposable e IList. Perceba também 
que, por uma questão de documentação e orientação, todas as interfaces são 
implementadas com o identificador, iniciando com a letra “I” maiúscula. 
 Para implementar uma interface usando uma classe (figura 45), os passos 
são: 
• Declare a interface usando a sintaxe class : interface; 
• Defina o conteúdo da classe considerando as regrasda interface. 
Programação Aplicada – Microsoft .NET usando C# 99 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 45 – Exemplo de implementação de uma classe baseada em uma 
interface 
 
4.2 Herança 
 
 Herança é o termo utilizado para definirmos as condições de relacionamento 
que os objetos possuem, determinando como uma classe pode referenciar outra, 
incluindo seus campos e propriedades. É através da herança que podemos 
especializar objetos. Exemplo:, quando desejamos que um campo receba apenas 
números. Para realizar essa atividade, você poderá criar uma caixa de texto a partir 
de uma classe existente na plataforma e, automaticamente, essa nova instância 
herdará todas as funcionalidades da classe padrão da caixa de texto, mas permitirá 
que algumas propriedades possam ser manipuladas. 
 
 
1. Inicie o Visual C# 2005 Express; 
2. Clique no comando Project: Create; 
3. Selecione o template Console Application; 
4. Digite no campo Name: ExemploHeranca e clique no botão OK; 
5. Execute o comando AddClass... do menu Project; 
6. Na janela que será apresentada (figura 46), verifique se o item Class está 
selecionado (caso contrário, selecione-o) e digite no campo Name: Carro.cs; 
 
Programação Aplicada – Microsoft .NET usando C# 100 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 46 – Janela para criação de uma classe 
 
7. Clique no botão Add; 
8. Dentro da classe, digite o seguinte conjunto de comandos: 
 public void Dirigir() 
 { 
 Console.WriteLine("Dirigindo na estrada"); 
 } 
 public void Parar() 
 { 
 Console.WriteLine("Parando o carro na estrada"); 
 } 
 
9. Salve a solução executando a combinação de teclas CTRL+SHIFT+S ou, no 
menu File, o comando Save All; 
10. Vamos agora adicionar uma nova classe. Execute o comando AddClass... do 
menu Project; 
11. Na janela que será apresentada (figura 47), verifique se o item Class está 
selecionado (caso contrário, selecione-o) e digite no campo Name: 
Caminhonete.cs; 
12. Ao lado da declaração class Caminhonete, adicione o sinal de : (dois pontos) 
e ao lado digite o nome da classe Carro; 
 
Programação Aplicada – Microsoft .NET usando C# 101 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 47 – Exemplo da Classe Caminhonete 
 
13. Volte para a classe principal, com o nome program.cs e digite o seguinte 
código: 
 Caminhonete meuCaminhao = new Caminhonete(); 
 meuCaminhao.Dirigir(); 
 meuCaminhao.Parar(); 
 
 Console.ReadLine(); 
 
14. Salve a solução usando a combinação de teclas CTRL+SHIFT+S ou, no 
menu File, o comando Save All; 
15. Execute o projeto através do comando Start Without Debugging e veja o 
resultado. Perceba que a classe Caminhonete executou métodos Dirigir e 
Parar, mas ela não possui tais classes. Na verdade, ela herdou a partir da 
classe que suportou a instanciação (carro). 
Avaliando o código criado no exemplo acima, perceba alguns pontos 
importantes: 
• A instanciação da classe carro ocorreu com a linha abaixo: 
Caminhonete meuCaminhao = new Caminhonete(); 
• O relacionamento entre a classe Caminhonete e a classe Carro foi 
estabelecida pela seguinte linha de comando: 
Class Caminhonete : Carro 
• Lembre-se de que, a partir desse relacionamento e da instanciação, a 
classe Caminhonete herdará os métodos da classe Carro. 
 
4.3 Polimorfismo 
 
 Embora a palavra polimorfismo nos leve a imaginar que estamos falando 
sobre mutações genéticas, na OOP esse conceito é muito simples. Basicamente é a 
Programação Aplicada – Microsoft .NET usando C# 102 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
habilidade de uma referência à variável de uma classe derivada, pode ser tratada 
como se fosse uma referência para a classe base. 
 É uma conseqüência natural da herança, já que nessa modalidade as classes 
estão em condições de derivação de uma classe base, e cada uma pode conter 
métodos e propriedades parecidos. 
 Essa abordagem permite obtermos dois benefícios: 
• É possível agrupar vários objetos diferentes que possuam a mesma 
classe base e tratá-los da mesma forma; 
• O comportamento polimórfico permite que, em tempo de execução, o 
compilador verifique o tipo de cada objeto e execute o método em seu 
código específico (chamado de overridden). 
 
 
 
Síntese 
 
A programação orientada a objetos é um assunto extremamente rico e 
poderoso. Nesta aula você estudou os elementos essenciais da OOP usando a 
linguagem C# e pôde perceber as vantagens de seu uso na programação atual. 
Agora você está pronto para realizar mais um passo no sentido da 
programação em .NET: na próxima aula você estudará como criar aplicações 
Windows ou, como a Microsoft procura divulgar, construção de Windows 
Applications. 
Até a próxima aula! 
 
Exercícios Propostos 
 
1) Como podemos definir o tratamento de erros em tempo de execução e qual a 
sua importância para a programação na plataforma .NET? 
______________________________________________________________
______________________________________________________________ 
______________________________________________________________ 
______________________________________________________________ 
Programação Aplicada – Microsoft .NET usando C# 103 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
2) Qual é a finalidade da declaração throw? 
______________________________________________________________
______________________________________________________________ 
______________________________________________________________ 
______________________________________________________________ 
3) Qual a vantagem em utilizarmos herança em nossos programas? 
______________________________________________________________
______________________________________________________________ 
______________________________________________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 104 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 7 
APLICAÇÕES WINDOWS FORMS 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Construir aplicações usando recursos baseados em 
interfaces gráficas; 
� Utilizar o Visual C# Express para a construção de programas 
Windows Application; 
� identificar o componente que deve ser utilizado para 
determinada finalidade; 
� Implementar programação orientada a eventos. 
 
Conteúdos da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
terminar, assinale o conteúdo já estudado. 
� Introdução 
� Delegates 
� Formulários e Tratamento de Eventos 
� Controles, Propriedades e Layout 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 105 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Prezado(a) aluno(a), 
O desenvolvimento de sistemas usando a plataforma .NET e a linguagem 
C# permite que você considere naturalmente a construção de soluções 
baseadas em interfaces gráficas. Na verdade, a Microsoft fez um grande esforço 
para que a plataforma .NET oferecesse uma grande riqueza de recursos visuais, 
permitindo que o programador para Windows construa software rico e com muita 
produtividade. Até o momento, nesse módulo, você programou aplicações chamadas 
“Console”, que significa a criação de programas baseados em caracteres. 
Dificilmente você utilizará esse tipo de projeto para atender necessidades de um 
usuário final. Na atualidade, a grande demanda está em soluções visualmente ricas, 
seja para Windows ou paraa Internet e a plataforma .NET dá um bom recado neste 
sentido. 
O objetivo desta aula é permitir que você aprenda a trabalhar com recursos 
visuais em seus programas .NET e entenda como utilizar os principais componentes 
para elaborar as telas de seus programas. Você também verá um método comum 
para essa abordagem: a programação orientada a eventos, técnica aplicada em 
todas as ferramentas utilizadas para o desenvolvimento de sistemas com interfaces 
gráficas, também conhecidas como IDEs (Interface Development Environment). 
Esse tipo de software é utilizado para acelerar o processo de desenvolvimento visual 
de interfaces (GUI – Graphic User Interface), e existem várias opções no mercado 
que atendem a diversas finalidades. 
Nesta aula continuaremos usando o Visual C# 2005 Developer , para suportar 
todas as atividades dos assuntos que serão tratados. 
Desejo-lhe boa aula. 
 
 
1 INTRODUÇÃO 
 
 Uma interface gráfica com o usuário (GUI) permite que o usuário realize uma 
interação com o programa através de recursos visuais. É uma forma de construção 
de sistemas, já que o programador primeiro “desenha” a interface com o usuário e 
depois constrói os programas, associando-os a eventos disponíveis nos 
componentes visuais utilizados. 
Programação Aplicada – Microsoft .NET usando C# 106 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Um conhecimento fundamental para ter bom aproveitamento nesse tipo de 
trabalho é o amplo domínio que o programador precisa ter sobre as orientações que 
a Microsoft apresenta para a construção de aplicações Windows, chamadas de 
“User Interface Design” ou, em português, “Desenho de Interfaces com o Usuário”. 
O guia, disponível na Internet pela Microsoft, fornece um conjunto de informações e 
orientações permeando as práticas que a fabricante espera que os programadores 
Windows mantenham. 
 Segundo Cooper (2003), a interação com o usuário começa um pouco abaixo 
da superfície dos sistemas, aplicações e hardware. Na verdade, quase todos os 
problemas de desenho de interfaces gráficas vêm de pessoas bem intencionadas, 
inteligentes e competentes, mas que mantinham o foco nas coisas erradas. O autor 
recomenda que, ao invés de manter o foco em tecnologias e tarefas, uma boa 
elaboração visual necessita que o foco se mantenha nas metas, para que os 
usuários mantenham sua atenção e tenham motivos para executar determinada 
tarefa. 
 O designer industrial Victor Papanek, descreve design como o esforço 
consciente e intuitivo para impor uma ordem com significado. 
 Alguns autores apresentam definições com maiores detalhes: 
• Entendimento das necessidades dos usuários, necessidades, motivações 
e contextos; 
• Entendimento dos requisitos e restrições de negócios, de técnicas e de 
domínio; 
• Tradução do conhecimento em planos para artefatos com suas formas, 
conteúdo e comportamento que transmite utilidade, usabilidade e desejo, 
desde que seja economicamente viável e tecnicamente adequado 
(considerando limitações culturais e pessoais). 
No centro dessas atividades de programação de sistemas com interfaces 
gráficas, existe uma ferramenta chamada IDE. Neste módulo, estamos utilizando o 
Microsoft Visual C# 2005 Express, versão mais simples de um produto mais 
completo da Microsoft, chamado Visual Studio .NET. 
Como você já teve oportunidade de ver neste curso, o Visual Studio faz parte 
da estratégia da plataforma .NET da Microsoft e a versão Express dos produtos são 
gratuitos e servem como uma opção para iniciantes que pretendem um dia migrar 
para versões superiores. Além disso, também como já tratamos, a linguagem C# e o 
Programação Aplicada – Microsoft .NET usando C# 107 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Visual Studio são as opções mais adequadas para o desenvolvimento na plataforma 
.NET, pois foram criados ou adequados para usufruir toda a capacidade da 
plataforma. 
 Veja algumas características comuns das interfaces gráficas no quadro 
abaixo e analise-as depois, na figura 48. 
 
Característica Descrição 
Janelas Múltiplas janelas permitem que informações 
diferentes sejam mostradas simultaneamente 
na tela do usuário. 
Ícones Representam tipos diferentes de informação. 
Em alguns sistemas, ícones representam 
arquivos. 
Menus Comandos são selecionados de uma janela 
especial conhecida como Menu, ao invés de 
utilizar comandos digitados. 
Apontador Um apontador, como o mouse, é usado para 
seleção de opções de um menu ou para indicar 
os itens de interesse em uma janela. 
Gráficos Elementos gráficos podem ser misturados com 
textos na mesma tela. 
 
Programação Aplicada – Microsoft .NET usando C# 108 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 48 – Janela e seus compoentes gráficos 
 
 É importante você observar que a construção de interfaces gráficas segue as 
bases características que vimos anteriormente e uma terminologia particular 
associada aos elementos gráficos, também chamados de componentes. 
 
 
Componente Descrição 
Caixa de texto (TextBox) Permite que o usuário entre com informações 
usando o teclado. Ele também pode 
apresentar texto que pode ser editado ou não. 
Etiqueta de Texto (Label) Apresenta imagem ou texto não editável (fixo). 
Botão (Button) Dispara eventos quando há um clique do 
mouse sobre ele. 
Caixa de verificação 
(CheckBox) 
Especifica uma opção que pode ser 
selecionada ou não selecionada. Muito útil 
quando há um conjunto de opções para 
selecionar uma ou mais opções ao mesmo 
Programação Aplicada – Microsoft .NET usando C# 109 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
tempo. 
Caixa de combinação 
(ComboBox) 
Fornece uma lista associada a uma caixa de 
texto, onde o usuário poderá selecionar um, e 
apenas um, item da lista apresentada. O item 
selecionado é apresentado na caixa de texto. 
Caixa de lista (ListBox) Fornece uma lista de itens que o usuário pode 
selecionar clicando sobre o item. É possível a 
seleção de um ou mais itens ao mesmo 
tempo. 
 
 As aplicações Windows em .NET são chamadas de Windows Applications. 
A linguagem C# e a plataforma .NET fornecem suporte extensivo para a construção 
de Windows Applications. Como falamos anteriormente, o ponto mais importante 
sobre as aplicações Windows é a chamada “orientação a eventos”, que veremos 
mais adiante nesta aula. Todas as aplicações dessa categoria apresentam uma 
interface gráfica, para os usuários interagirem com a aplicação e também é a forma 
como a aplicação responde às interações com o usuário. Esta interface gráfica com 
o usuário é chamada de Windows Form, ou WinForm. Um Windows Form pode 
conter componentes visuais como caixas de texto, etiquetas e botões. Como tudo 
que está construído sobre a plataforma .NET é resumido a objetos, não seria 
diferente com os Windows Forms. Todos os objetos visuais inseridos em um 
formulário são representados por uma classe base do objeto, que estará 
armazenada no namespace Windows.Forms. 
 Na verdade o namespace Windows.Forms é um conjunto de classes e 
métodos para a criação de programas com interface gráfica. 
 
2 DELEGATES 
 
 Para que você aprenda a trabalhar com Windows Forms, é necessário que 
você aprenda primeiro a trabalhar com um recurso poderoso da linguagem C#: 
Delegates. 
 Delegates é um tipo de referência utilizado para encapsular um método com 
uma assinatura específica (já vimos este conceito anteriormente, em sobrecarga de 
métodos) e um tipo de retorno. Você pode encapsular qualquer método em um 
Programação Aplicada – Microsoft .NET usando C# 110 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
delegate. Na verdade, é através deles que os eventos são controlados dentro de um 
formulário C#, apesar de também serem utilizados paraimplementar recursos de 
programação como callbacks e chamadas assíncronas. 
 Em resumo, um delegate nada mais é que um ponteiro de função. Ponteiros 
são variáveis que, ao invés de armazenar um valor, armazenam o endereço de 
memória em que o valor se encontra, permitindo que uma classe chame métodos de 
outras classes, sem exigir que as outras classes sejam derivadas dentro da 
hierarquia da classe atual. 
 Quando você está construindo formulários visuais em .NET, os eventos são 
códigos de programação que se utilizam de delegates para realizar o seu trabalho. 
Cada componente inserido no formulário possui seu conjunto de eventos, e cada 
evento implementa recursos de delegates. 
 Os Delegates são muito utilizados em Windows.Forms, mas também podem 
ser aplicados em qualquer caso onde o comportamento das variáveis é mais 
importante que o valor delas. Se fôssemos utilizar uma implementação convencional 
de herança, usaríamos interfaces (figura 49). 
 
Figura 49 – Diagrama UML de Implementação sem Delegates 
 
 
 Com o uso de Delegates, é possível realizar um caminho alternativo (figura 
50). 
Programação Aplicada – Microsoft .NET usando C# 111 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 50 – Diagrama UML usando Delegates 
 
 
3 FORMULÁRIOS E TRATAMENTO DE EVENTOS 
 
 Toda Windows Application deve possuir uma janela. O termo janela, cujo 
termo é substituído para Formulário. Na verdade, um formulário nada mais é do que 
uma janela de uma aplicação. É um elemento gráfico que aparece na Área de 
Trabalho do usuário no Windows, mas um formulário pode ser uma caixa de diálogo 
ou um tipo de formulário especial, chamado MDI Form. O MDI vem do acronismo de 
Multiple Document Interface, que significa a capacidade de um formulário ser 
apresentado dentro de outro formulário, criando um conceito simples de pai-filho. A 
abordagem usando formulários MDI está caindo em desuso, já que o .NET e as 
versões mais atuais do Windows permitem maior controle e navegação para a sua 
aplicação. 
 Um formulário pode conter grande variedade de objetos e componentes em 
seu conteúdo, por isso a importância do User Interface Design, pois é no momento 
da criação de um formulário para aplicação, que o programador irá demonstrar sua 
“visão” para apresentação do conteúdo. 
 Quando inserimos um formulário para ser apresentado em uma aplicação, na 
verdade, a classe responsável pela apresentação do formulário, terá referência 
através do comando using para o namespace Windows.Forms. Os componentes 
inseridos no formulário, na verdade, são considerados instância de uma determinada 
classe que implementa a interface IComponent, definindo o comportamento dos 
componentes, por exemplo: a forma como deve ser usado para carregá-lo na 
memória. 
Programação Aplicada – Microsoft .NET usando C# 112 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 O principal componente do Visual C# 2005 Express para os trabalhos de 
construção de uma aplicação é o Form Editor, ponto central do produto. Usando a 
caixa de ferramentas (ToolBox), apresentada ao lado esquerdo do Form Editor, 
você poderá ver a lista de controles que podem ser inseridos no formulário. 
 O Visual C# 2005 Express, por ser uma ferramenta IDE, possui um amplo 
conjunto de recursos para facilitar ao programador a tarefa de construção de 
Windows Applications, conforme você aprendeu na segunda aula deste módulo. 
 Os controles e componentes são organizados por categorias no Toolbox e as 
categorias representam uma funcionalidade em particular: banco de dados e menus, 
por exemplo (figura 51). 
 Para utilizar um componente em particular que está disponível no Toolbox, 
clique sobre o componente e, mantendo o botão do mouse pressionando, arraste-o 
para dentro do formulário. Clicando apenas uma vez no componente e depois, 
clicando direto no local de destino, também é possível inserir um componente no 
formulário. 
 
Figura 51 – Form Editor e Toolbox 
 
 Para cada componente inserido no formulário, há métodos, eventos e 
propriedades que podem ser manipulados pelo programador. Para visualizar os 
Programação Aplicada – Microsoft .NET usando C# 113 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
métodos e os eventos de um objeto em particular, arraste-o para o formulário e 
efetue um duplo clique sobre ele. Você acessará uma janela que representa a área 
de código do formulário. 
 A lista de métodos e eventos é composta dos membros que fazem parte da 
classe editada no momento. No caso de um formulário, você encontrará na lista, por 
padrão, Form1( ) e InitializeComponent( ) (figura 52). Um formulário é um container 
para os controles e componentes. Ao arrastar o controle para o formulário, o Visual 
C# gera o código que instancia o objeto e define as propriedades básicas. O código 
gerado é atualizado de acordo com os elementos visuais alterados, bem como, as 
propriedades do objeto em questão. 
 
Figura 52 – Janela de Editor de Código 
 
 Já a lista de propriedades do objeto que está selecionado, você pode ver que 
é apresentada na caixa de propriedades. Normalmente aparece no canto inferior 
direito do ambiente do Visual C# (figura 53). Perceba que, naturalmente, cada objeto 
possui um conjunto particular de propriedades, apesar de algumas serem comuns a 
todos os objetos, como a propriedade NAME do objeto, por exemplo. 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 114 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 53 – Propriedades do Objeto 
 
 
 
4 CONTROLES, PROPRIEDADES E LAYOUT 
 
 Já que anteriormente falamos sobre controles, vamos partir da análise de 
uma aplicação. Considere o seguinte formulário (figura 54), construído no Form 
Editor: 
 
Figura 54 – Formulário de Exemplo da Aplicação 
 
Programação Aplicada – Microsoft .NET usando C# 115 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Observe que o formulário apresenta um título: “Exemplo de Formulário” (figura 
55), texto apresentado a partir da alteração da propriedade Text do Formulário. 
 
 
Figura 55 – Propriedade Text do formulário 
 
 Além disso, no formulário existem dois controles: um Button e um TextBox, 
para que ao usuário, ao clicar sobre o botão, veja apresentada uma mensagem na 
caixa de texto. 
 Para apresentar o texto dentro do controle Button, também foi alterada a 
propriedade Text, na janela de Propriedades. Para implementar o evento clique do 
botão, foi realizado um duplo clique sobre o botão e digitado a seguinte instrução em 
C#: 
textBox1.Text = "Botão pressionado!"; 
 O código completo gerado pelo programa é o seguinte: 
namespace FormControlEvent 
{ 
 partial class FrmControlEvent 
 { 
 /// <summary> 
 /// Required designer variable. 
 /// </summary> 
 private System.ComponentModel.IContainer components = null; 
 
 /// <summary> 
 /// Clean up any resources being used. 
 /// </summary> 
 /// <param name="disposing">true if managed resources should� 
be disposed; otherwise, false.</param> 
 protected override void Dispose(bool disposing) 
 { 
Programação Aplicada – Microsoft .NET usando C# 116 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 if (disposing && (components != null)) 
 { 
 components.Dispose(); 
 } 
 base.Dispose(disposing); 
 } 
 
 #region Windows Form Designer generated code 
 
 /// <summary> 
 /// Required method for Designer support - do not modify 
 /// the contents of this method with the code editor. 
 /// </summary> 
 private void InitializeComponent() 
 {this.button1 = new System.Windows.Forms.Button(); 
 this.textBox1 = new System.Windows.Forms.TextBox(); 
 this.SuspendLayout(); 
 // 
 // button1 
 // 
 this.button1.Location = new System.Drawing.Point(15, 38); 
 this.button1.Name = "button1"; 
 this.button1.Size = new System.Drawing.Size(75, 23); 
 this.button1.TabIndex = 0; 
 this.button1.Text = "Clique"; 
 this.button1.UseVisualStyleBackColor = true; 
 this.button1.Click += new � 
System.EventHandler(this.button1_Click); 
 // 
 // textBox1 
 // 
 this.textBox1.Location = new System.Drawing.Point(115,� 
41); 
 this.textBox1.Name = "textBox1"; 
 this.textBox1.Size = new System.Drawing.Size(145, 20); 
 this.textBox1.TabIndex = 1; 
 // 
 // FrmControlEvent 
 // 
 this.AutoScaleDimensions = new System.Drawing.SizeF(6F,� 
Programação Aplicada – Microsoft .NET usando C# 117 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
13F); 
 this.AutoScaleMode = � 
System.Windows.Forms.AutoScaleMode.Font; 
 this.ClientSize = new System.Drawing.Size(286, 273); 
 this.Controls.Add(this.textBox1); 
 this.Controls.Add(this.button1); 
 this.Name = "FrmControlEvent"; 
 this.Text = "Exemplo Formulário"; 
 this.ResumeLayout(false); 
 this.PerformLayout(); 
 
 } 
 
 #endregion 
 
 private System.Windows.Forms.Button button1; 
 private System.Windows.Forms.TextBox textBox1; 
 } 
} 
 
 Para que você possa implementar um visual equilibrado, considerando que é 
comum o uso de vários componentes no visual de sua aplicação, utilize o menu 
Format do Visual C# (figura 56), para executar os ajustes necessários. 
 
Figura 56 – Menu Format 
 
 Observe que existem várias opções nesse menu, oferecendo-lhe mecanismos 
rápidos para um ajuste fino do visual do formulário. São eles: 
Componente Descrição 
Align Alinha os componentes selecionados de acordo com uma 
definição de caminho padrão. 
Programação Aplicada – Microsoft .NET usando C# 118 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Componente Descrição 
Make same size Aplica o mesmo tamanho para os objetos selecionados. 
Horizontal Spacing Define o espaçamento Horizontal entre os objetos selecionados, 
com o objetivo de manter um padrão de distância entre os 
objetos. 
Vertical Spacing Define o espaçamento Vertical entre os objetos selecionados, 
com o objetivo de manter um padrão de distância entre os 
objetos. 
Center in Form Centraliza o objeto ou o conjunto de objetos selecionados, no 
centro do formulário. 
Order Quando ocorrer sobreposição de objetos no formulário, com esse 
comando você pode determinar qual objeto será apresentado 
superposto e sobreposto. 
Lock controls Comando importante para garantir que, após você ter realizado a 
distribuição desejada, ao habilitá-lo, os controles ficarão 
bloqueados e você não correrá o risco de acidentalmente alterar 
o layout do formulário. 
 
 
4.1 Aplicação Prática em Windows Forms 
 
 Vamos agora construir uma aplicação com vários controles e a manipulação 
de várias propriedades e eventos. 
1. Execute o Visual C# 2005 Express, se ainda não está em execução; 
2. Clique em Create Project; 
3. Na janela que será apresentada, escolha o modelo Windows Application, 
digite na caixa Name, ComprarLivro e clique no botão OK; 
4. Desenhe os componentes no formulário conforme mostra a figura 57; 
 
Programação Aplicada – Microsoft .NET usando C# 119 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 57 – Formulário de Exemplo 
 
5. Defina as propriedades do formulário para: 
a. Size: 500,414 
b. StartPosition: CenterScreen 
c. Name: MeuExemplo 
d. Text: Compra de Livros 
6. Adicione um Label par ao formulário e defina as seguintes propriedades para 
o componente: 
a. Name: lblTitulo 
b. Text: Comprar livro 
c. Font: Negrito, Tamanho 16 
 
7. Adicione um GroupBox ao formulário (figura 58). Caso o controle não esteja 
aparecendo em seu Toolbox, verifique se o grupo Containers está expandido 
na caixa de ferramentas; 
 
Programação Aplicada – Microsoft .NET usando C# 120 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 58 – Controle GroupBox 
 
8. Redimensione o tamanho dele para que acomode três caixas de verificação. 
Defina as seguintes propriedades para o controle: 
a. Text: Livros Disponíveis 
b. Name: gpbLivrosDisponiveis 
 
9. Adicione três CheckBox para dentro do GroupBox inserido no item 7. Altere 
as propriedades de cada CheckBox, como segue: 
Propriedades 
Componente 
Name Text 
checkBox1 chkItem1 Introdução ao C# 
checkBox2 chkItem2 C# para Iniciantes 
checkBox3 chkItem3 Guia do Programador C# 
 
10. Adicione mais um Label para o formulário e altere a propriedade Text para 
“Selecione o(s) livro(s) para compra” e a propriedade Name para lblLivros. 
Posicione o TextBox dentro do GroupBox; 
11. Adicione mais um GroupBox para o formulário e defina as seguintes 
propriedades: 
a. Text: Opções de Pagamento 
b. Name: gpbOpcoesCompra 
c. Enabled: FALSE 
Programação Aplicada – Microsoft .NET usando C# 121 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
12. Adicione dois RadioButton para o formulário, dentro do GroupBox, inserido no 
item 11. Defina as seguintes propriedades: 
Propriedades 
Componente 
Name Text Checked 
radioButton1 optCC Cartão de Crédito TRUE 
radioButton2 oprDeposito Depósito Bancário FALSE 
 
13. Adicione mais um Label para o formulário e altere a propriedade Text para 
“Escolha o modo de pagamento” e a propriedade Name para lblPagto. 
Posicione o TextBox dentro do GroupBox; 
14. Adicione dois controles Button ao formulário, alterando as seguintes 
propriedades: 
Propriedades 
Componente 
Name Text Enabled 
Button1 btnComprar Comprar FALSE 
Button2 btnSair Sair TRUE 
 
15. Adicione mais um Label para o formulário e altere a propriedade Text para 
“Observações” e a propriedade Name para lblOBS; 
16. Adicione um TextBox para o formulário e altere as propriedades: 
Propriedades 
Componente 
Name Text Multiline 
textBox1 txtObservacoes Deixe em branco TRUE 
 
17. Salve o seu trabalho; 
18. Vamos agora adicionar os códigos de programação aos eventos. Adicione o 
seguinte código ao evento Click do botão btnSair: 
private void btnSair_Click(object sender, EventArgs e) 
{ 
 Application.Exit(); 
} 
 
19. Quando o usuário selecionar qualquer livro, o GroopBox Opções de 
Pagamento e o botão Comprar, deverão ser habilitados, já que, inicialmente, 
ficarão desativados. Eles também ficarão indisponíveis em caso de nenhum 
Programação Aplicada – Microsoft .NET usando C# 122 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
livro ter sido selecionado. Para realizar essa atividade, vamos adicionar 
código para o evento CheckedChanged do checkbox chkItem1. Digite o 
seguinte código para o evento: 
 
 
if (chkItem1.Checked == false && chkItem2.Checked == false && � 
chkItem3.Checked == false) 
 { 
 gpbOpcoesCompra.Enabled = false; 
 btnComprar.Enabled = false; 
 } 
 else 
 { 
 gpbOpcoesCompra.Enabled = true; 
 btnComprar.Enabled = true; 
 } 
 
20. Copie o código para os outros CheckBox (chkItem2 e chkItem3); 
21. Salve o programa e execute-o. Veja os resultados até o momento, 
selecionandoos livros para compra; 
22. Agora vamos inserir um código para o botão Comprar, que deverá apresentar 
um resumo de compra, a partir dos livros selecionados. Digite o seguinte 
código para o evento Click do botão; 
 
private void btnComprar_Click(object sender, EventArgs e) 
{ 
 string message = "Você comprou:\r\n\t"; 
 int Pedido = 0; 
 
 if(chkItem1.Checked) 
 { 
 Pedido+=20; 
 message+=chkItem1.Text + "\r\n\t"; 
 } 
 
 if(chkItem2.Checked) 
 { 
 Pedido+=40; 
 message+=chkItem2.Text + "\r\n\t"; 
 } 
 
Programação Aplicada – Microsoft .NET usando C# 123 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 if(chkItem3.Checked) 
 { 
 Pedido+=60; 
 message+=chkItem3.Text + "\r\n\t"; 
 } 
 
 string ModoPagamento = ""; 
 
 if (optCC.Checked) 
 { 
 ModoPagamento = optCC.Text; 
 } 
 else 
 { 
 ModoPagamento = optDeposito.Text; 
 } 
 
 message +="\r\nO pagamento será de R$ " + Pedido.ToString(); 
 message +="\r\nO modo de pagamento selecionado foi " + ModoPagamento; 
 
 if (txtObservacoes.Text != "") 
 { 
 message+="\r\nSuas observações foram : " + txtObservacoes.Text; 
 } 
 MessageBox.Show(message, "Resumo"); 
 } 
 
23. Execute a sua aplicação (figura 59) e veja os resultados. 
 
Programação Aplicada – Microsoft .NET usando C# 124 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 59 – Resultado do sistema 
 
 Algumas dicas importantes na construção de Windows Forms: 
• Crie o layout de seu formulário para que se apresente de forma simples e 
fácil de entender. É importante que o usuário de sua aplicação sinta-se 
familiar com o ambiente do produto. O uso deve ser conforme o esperado, 
sem surpresas; 
• Não esqueça de utilizar o menu Format para obter um resultado melhor 
sobre a distribuição dos componentes; 
• Quase todos os controles possuem propriedades comuns como Location, 
Size, Enabled, Visible e etc. Uma das propriedades mais importantes, a 
TabIndex, descreve a seqüência que o foco do Windows deverá seguir, 
quando o usuário pressionar a tecla TAB; 
• Os controles devem possuir nomes de acordo com sua finalidade, para 
que sejam fáceis de reconhecer quando o programador for realizar alguma 
manutenção; 
• Embora seja apenas uma prática de programação, adicionar três 
caracteres iniciais ao nome do controle, representando o tipo de controle a 
que o nome se refere, pode ser muito útil. 
 
 
Programação Aplicada – Microsoft .NET usando C# 125 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
4.2 Estabelecendo o formulário de inicialização 
 
 É comum você inserir vários formulários em uma aplicação Windows Forms. 
Nessa condição, é necessário determinar qual o formulário de início que a aplicação 
irá apresentar quando for executada. 
 Existem duas formas para determinar o objeto a ser inicializado e informar o 
formulário que será disparado quando a aplicação for inicializada. A primeira forma é 
pelas propriedades do projeto (figura 60), no campo Startup Object. 
 
 
Figura 60 – Janela de propriedades do projeto 
 
 Uma outra forma é acessar o método Main( ) da aplicação e alterar o código 
C# (figura 61), referente à inicialização do projeto. 
 
Figura 61 – Código C# de inicialização 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 126 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
4.4 Menus 
 
 Menu é um recurso visual que fornece um grupo de comandos relacionados 
nas aplicações Windows. Os itens que compõem os menus (figura 62) variam 
conforme a aplicação, mas seu uso é parte integral da implementação visual em C# 
e muito comum na navegação das funcionalidades disponíveis em um sistema. 
 
Figura 62 – Terminologia no uso de menus 
 
A letra sublinhada no título do item de menu é a chamada “Letra de Atalho”, 
acionada no menu principal pela combinação de teclas ALT+Letra. Já nos submenus 
e itens de menus, simplesmente digitando a letra associada ao comando. 
Para criar um menu em Windows Forms, abra a caixa de ferramentas e 
arraste o controle MenuStrip no formulário. Essa ação criará uma barra na parte 
superior do formulário, abaixo da barra de título, e apresentará um ícone na área de 
componentes do Visual C# (figura 63). 
A área de inserção de menus no formulário é muito simples para operação. 
Você pode digitar diretamente o menu que deseja apresentar ao usuário, à medida 
que os itens são inseridos, as opções de menu e submenus são apresentados. 
 
Programação Aplicada – Microsoft .NET usando C# 127 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 63 – Ambiente de edição de menus no Visual C# 
 
 A inserção dos itens de menus é realizada com a digitação nos campos 
disponíveis pelo Editor de Menu e as propriedades de cada menu também devem 
ser manipuladas na janela de propriedades do Visual C# (figura 64). É pelas 
propriedades que você pode determinar as teclas de atalho para execução do item. 
 
Figura 64 – Criação de menu 
 
Para inserir uma barra separadora no menu, simplesmente digite o “hífen” na 
caixa de texto referente ao item de menu. A propriedade Enabled do item de menu 
determina se o item está disponível para execução ou não. 
Programação Aplicada – Microsoft .NET usando C# 128 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Depois que você criou o seu menu, o próximo passo é a inserção de código 
C# aos itens que desejamos que realize determinada tarefa. Na verdade, o editor de 
menus facilita o processo de construção “visual” do menu, mas somente após a 
inserção do código associado é que o menu recebe a capacidade de execução. O 
código é criado em um evento associado ao item de menu (figura 65). 
Para criar um evento, efetue duplo clique no item de menu desejado. Essa 
operação apresentará o editor de código do Visual C#, com a estrutura mínima para 
a composição do evento. 
 
 
Figura 65 – Código associado ao evento 
 
 Visão completa do código gerado em C#: 
 
namespace Menu 
{ 
 partial class Form1 
 { 
 /// <summary> 
 /// Required designer variable. 
 /// </summary> 
 private System.ComponentModel.IContainer components = null; 
 /// <summary> 
 /// Clean up any resources being used. 
 /// </summary> 
 /// <param name="disposing">true if managed resources 
 /// should be disposed; otherwise, false.</param> 
 protected override void Dispose(bool disposing) 
 { 
 if (disposing && (components != null)) 
 { 
 components.Dispose(); 
 } 
 base.Dispose(disposing); 
 } 
 #region Windows Form Designer generated code 
Programação Aplicada – Microsoft .NET usando C# 129 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 /// <summary> 
 /// Required method for Designer support - do not modify 
 /// the contents of this method with the code editor. 
 /// </summary> 
 private void InitializeComponent() 
 { 
 this.menuStrip1 = new System.Windows.Forms.MenuStrip(); 
 this.fileToolStripMenuItem = new � 
 System.Windows.Forms.ToolStripMenuItem(); 
 this.abrirToolStripMenuItem = new � 
 System.Windows.Forms.ToolStripMenuItem(); 
 this.menuStrip1.SuspendLayout();this.SuspendLayout(); 
 // 
 // menuStrip1 
 // 
 this.menuStrip1.Items.AddRange(new � 
 System.Windows.Forms.ToolStripItem[] { � 
 this.fileToolStripMenuItem}); 
 this.menuStrip1.Location = new System.Drawing.Point(0, 0); 
 this.menuStrip1.Name = "menuStrip1"; 
 this.menuStrip1.Size = new System.Drawing.Size(292, 24); 
 this.menuStrip1.TabIndex = 0; 
 this.menuStrip1.Text = "menuStrip1"; 
 // 
 // fileToolStripMenuItem 
 // 
 this.fileToolStripMenuItem.DropDownItems.AddRange(new � 
 System.Windows.Forms.ToolStripItem[] { 
 this.abrirToolStripMenuItem}); 
 this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; 
 this.fileToolStripMenuItem.Size = new � 
System.Drawing.Size(56, 20); 
 this.fileToolStripMenuItem.Text = "&Arquivo"; 
 // 
 // abrirToolStripMenuItem 
 // 
 this.abrirToolStripMenuItem.Name = "abrirToolStripMenuItem"; 
 this.abrirToolStripMenuItem.Size = new � 
System.Drawing.Size(152, 22); 
 this.abrirToolStripMenuItem.Text = "&Abrir"; 
Programação Aplicada – Microsoft .NET usando C# 130 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 this.abrirToolStripMenuItem.Click += � 
new System.EventHandler � 
(this.abrirToolStripMenuItem_Click); 
 // 
 // Form1 
 // 
 this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 
 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 
 this.ClientSize = new System.Drawing.Size(292, 273); 
 this.Controls.Add(this.menuStrip1); 
 this.MainMenuStrip = this.menuStrip1; 
 this.Name = "Form1"; 
 this.Text = "Form1"; 
 this.menuStrip1.ResumeLayout(false); 
 this.menuStrip1.PerformLayout(); 
 this.ResumeLayout(false); 
 this.PerformLayout(); 
 } 
 #endregion 
 private System.Windows.Forms.MenuStrip menuStrip1; 
 private 
System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; � 
 private System.Windows.Forms.ToolStripMenuItem � 
abrirToolStripMenuItem; 
 } 
} 
 
 
 
 
Síntese 
 
Nesta aula você se envolveu com uma das atividades mais ricas em termos 
visuais, na programação .NET: a construção de Windows Forms. É um trabalho 
simples de ser realizado, exigindo apenas a aplicação de boas práticas de User 
Interface Design, assunto que também abordamos nesta aula. 
 Finalmente, você estudou como é a abordagem da programação orientada a 
eventos, o que é um evento e seu uso na construção de programas usando um 
Programação Aplicada – Microsoft .NET usando C# 131 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
ambiente IDE. Espero que você tenha percebido as vantagens deste método de 
trabalho para programação. 
 Na próxima aula, vamos aprender como trabalhar com banco de dados no 
C#. 
 Até lá! 
 
EXERCÍCIOS PROPOSTOS 
1) Qual a namespace responsável pela construção de janelas na plataforma 
.NET? 
______________________________________________________________ 
______________________________________________________________ 
2) Descreva três recursos importantes do Editor de Código do ambiente do 
Visual C# 2005 Express. 
______________________________________________________________ 
______________________________________________________________ 
______________________________________________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 132 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Aula 8 
BANCO DE DADOS COM C# 
 
 
Objetivos da aula 
 
Ao final desta aula, você deverá ser capaz de: 
� Identificar os elementos básicos de banco de dados 
relacionais; 
� Entender como a linguagem SQL colabora no processo de 
construção de programas com bancos de dados; 
� Utilizar as ferramentas do Visual C# e do SQL Express para 
manter um banco de dados para a aplicação; 
� Definir as opções de uso de banco de dados em uma 
aplicação C#. 
 
Conteúdos da aula 
 
Acompanhe os assuntos desta aula, se preferir, ao 
terminar, assinale o conteúdo já estudado. 
� Introdução à banco de dados relacionais? 
� Linguagem SQL 
� Microsoft SQL Express 
� Data Controls e ADO.NET 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 133 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Prezado(a) aluno(a), 
No desenvolvimento atual de aplicações, o banco de dados é uma 
tecnologia muito comum. A grande maioria das aplicações utiliza alguma 
forma de armazenamento de dados persistentes, nesse caso, a tecnologia de banco 
de dados é mais adequada para as mais diversas finalidades. Nesta aula você 
aprenderá os conceitos principais sobre a tecnologia de banco de dados e como 
implementar projetos em C# que se utiliza de banco de dados. 
Você já teve uma leve abordagem sobre os conceitos de banco de dados e 
aqui estaremos revisitando algumas das informações essenciais para integrar a 
tecnologia com o desenvolvimento de uma aplicação em C#. 
Boa aula. 
 
 
1 INTRODUÇÃO A BANCO DE DADOS RELACIONAIS 
 
 Um banco de dados é uma coleção organizada de dados e os sistemas 
gerenciadores de banco de dados (SGBD) fornecem os mecanismos para organizar, 
armazenar, recuperar e modificar os dados pelo usuário. 
Em um Banco de Dados relacional temos uma série de tabelas que têm um 
conjunto de linhas e colunas. As colunas representam as informações pertinentes a 
uma linha. Dessa forma, as linhas devem ser identificadas univocamente por uma 
chave primária, para que as informações possam ser recuperadas posteriormente. 
A chave primária pode ser uma coluna que nunca terá seus dados repetidos ou um 
conjunto de colunas que, juntas, nunca serão repetidas. 
 
Coluna 1 Coluna 2 Coluna 3 
CPF Nome DataNascimento 
4594545 Júnior da Silva 24-08-2005 
9454001 Armort de Souza 31-05-2005 
9345400 Tianak da Costa 12-02-2004 
 
 Vários autores apresentam as vantagens no uso de um SGBD: 
 
Programação Aplicada – Microsoft .NET usando C# 134 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Vantagem Descrição 
Eliminação da 
inconsistência dos dados 
Nos sistemas de arquivos, os dados ficavam 
armazenados em locais isolados e só acessados pela 
linguagem que lhes deu origem, com isso tínhamos a 
mesma informação repetida em locais diferentes. Com a 
chegada dos SGDBs, os dados puderam ser 
centralizados, evitando a duplicação e, 
conseqüentemente, a inconsistência. 
Facilidade de acesso aos 
dados 
Devido à centralização dos dados, facilmente puderam ser 
acessados por qualquer ponto da rede. 
Provê eficiente segurança 
aos dados 
Usando critérios de permissões definidos pelo 
administrador, podemos informar ao servidor quem pode 
acessar o que e quais operações pode realizar. 
Provê restrições de 
integridade 
Nos SGDBs você pode definir regras de integridade sobre 
os campos de uma tabela, com isso, qualquer valor 
inserido na coluna deverá respeitar essa regra. 
Provê ferramentas 
eficientes para backup e 
restore 
Um dos aspectos importantes no uso de SGBDs é a 
manutenção dos dados. Utilitários para cópia de 
segurança e restauração de dados são fundamentais para 
a administração dos dados do SGBD. 
 
 Um Sistema Gerenciador de Base de Dados (SGBD) é uma coleção de 
programas que permiteaos usuários criarem e manipularem uma base de dados. 
Um SGBD é, assim, um sistema de software de propósito geral que facilita o 
processo de definir, construir e manipular bases de dados de diversas aplicações 
(figura 66). 
• Definir uma base de dados envolve a especificação de tipos de dados a 
serem armazenados na base de dados; 
• Construir uma base de dados é o processo de armazenar os dados em 
algum meio que seja controlado pelo SGBD; 
• Manipular uma base de dados indica a utilização de funções como a de 
consulta, para recuperar dados específicos, modificação da base de dados 
para refletir mudanças no mini-mundo (inserções, atualizações e 
remoções), e geração de relatórios. 
Programação Aplicada – Microsoft .NET usando C# 135 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 66 – Aplicação acessando banco de dados 
 
 
2 LINGUAGEM SQL 
 
 Na história do desenvolvimento dos Bancos de Dados Relacionais, há o 
momento em que foi necessário o desenvolvimento de linguagens destinadas à sua 
manipulação. Então o Departamento de Pesquisas da IBM desenvolveu a SQL 
(Search and Query Language) como forma de interface para o SGBD denominado 
SYSTEM R no início dos anos 70. Somente em 1986 o American National Standard 
Institute ( ANSI ), publicou um padrão SQL (Structured Query Language), que se 
estabeleceu como linguagem padrão de Banco de Dados Relacional. 
 A SQL pode ser dividida em dois tipos de comandos: 
• A DDL (Data Definition Language) - apresenta uma série de comandos 
que permite a definição dos dados. É composta, entre outros, pelos 
comandos Create, destinado à criação do Banco de Dados, das Tabelas 
que o compõem, além das relações existentes entre as tabelas. 
• Create, Alter e Drop. 
Programação Aplicada – Microsoft .NET usando C# 136 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Os comandos da série DML (Data Manipulation Language) - destinados às 
consultas, inserções, exclusões e alterações em um ou mais registros de uma 
ou mais tabelas de maneira simultânea. 
 Select, Insert, Update e Delete. 
A linguagem SQL é um grande padrão de banco de dados, devido à 
simplicidade e facilidade de uso. Opõe-se a outras linguagens, visto que uma 
consulta SQL especifica a forma e não o caminho para chegar ao resultado. É uma 
linguagem declarativa, em oposição a outras linguagens procedurais, reduzindo o 
ciclo de aprendizado daqueles que se iniciam na linguagem. 
Após estabelecer a comunicação de sua aplicação C# com um SGBD, a 
forma de armazenamento, alteração e exclusão dos dados se dará com o uso da 
linguagem SQL. Esse modelo de aplicação é conhecido, hoje, como arquitetura 
cliente/servidor, pois as atividades de interface com o usuário (camada de aplicação) 
e SGBD (camada de dados) estão fisicamente separados em uma rede de 
computadores. À medida que o modelo evoluiu, novas camadas foram inseridas, 
com o objetivo de aumentar a capacidade de processamento simultâneo que a 
aplicação pode atender. Dessa forma, as arquiteturas 3-Camadas e N-Camadas, 
foram batizadas com uma camada adicional chamada “aplicação”, ou seja, as 
classes, métodos e funções de uma aplicação, responsáveis pela lógica do sistema, 
podem ficar armazenadas também em um servidor separado. O conceito de N-
Camadas surgiu com o objetivo de representar a capacidade dos sistemas 
corporativos poderem “escalar horizontalmente”, ou seja, para cada camada 
podemos ter um ou vários computadores. 
 O processamento de consulta de dados de uma aplicação até o banco de 
dados, envolve uma série de passos, os quais envolvem software, tecnologia e 
informações. Veja os detalhes na figura 67. 
 
Programação Aplicada – Microsoft .NET usando C# 137 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 67 – O processo de consulta ao banco de dados usando SQL 
 
 Comandos DDL: 
Comando Descrição 
CREATE Permite a criação de tabelas no banco de dados 
ou mesmo de sua criação. 
DROP Elimina a definição da tabela, seus dados e 
referências. 
ALTER Permite inserir/eliminar atributos nas tabelas já 
existentes 
 
 
 Comandos DML: 
Comando Descrição 
SELECT Realiza a consulta em um banco de dados 
INSERT Insere dados em uma tabela específica 
DELETE Exclui dados de uma tabela segundo um critério 
UPDATE Atualiza os dados em uma tabela 
Programação Aplicada – Microsoft .NET usando C# 138 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
3 MICROSOFT SQL EXPRESS 
 
 O SQL Server Express é um conjunto de ferramentas para ajudar você no 
gerenciamento de bancos de dados, envolvidos no desenvolvimento de pequenos 
projetos. Além disso, o próprio Visual C# oferece ferramentas para acessar dados a 
partir do ambiente de desenvolvimento, permitindo maior produtividade na 
construção de programas que acessam banco de dados. 
 Há alguns anos o produto SQL Server já existe com a marca da Microsoft. 
Vem de uma longa história e, originalmente, foi baseado em um produto chamado 
Sybase. Seu principal mercado é atender projetos de grande volume de dados – 
principal diferencial do SQL Server para o Access – dentro do portfolio da Microsoft. 
Se havia pouca necessidade – um ou poucos usuários – com um volume 
transacional simples e baixo, era recomendado o Access, se o projeto exigia alto 
volume de dados – com grande número de usuários simultâneos – incluindo 
segurança, e com nível médio de complexidade dos dados, o SQL Server era 
recomendado. Havia, contudo, um detalhe: o conhecimento prático e operacional 
adquiridos com o Access era, na sua maioria, perdido quando ocorria a migração 
para o SQL Server, exigindo do profissional aprender mais sobre as ferramentas de 
gerenciamento do segundo produto. 
 Desde as primeiras versões do Access, existem ferramentas e meios para a 
migração de um banco de dados Access para um SQL Server, as chamadas 
upsizing. Nas últimas versões do Access, já era possível a criação nativa de bancos 
de dados em formato SQL Server, permitindo que as ferramentas dos dois produtos 
pudessem compartilhar da mesma base de dados. Mas, quando ocorria a migração 
de uma base para a outra, a aplicação que utilizava o banco de dados migrado 
(chamada front-end) precisava receber uma série de alterações, para absorver as 
novas funcionalidades da plataforma superior e também adequar-se a certas regras 
que na plataforma anterior eram mais “leves”. 
 A criação de um banco de dados usando SQL Server Express é muito simples 
e sua migração para as demais versões superiores do produto é também 
extremamente simples. Além disso, na versão mais simples, as regras e condições 
das versões superiores, são mantidas e NADA precisa ser corrigido em uma 
aplicação para adequar-se à migração para uma versão superior. 
Programação Aplicada – Microsoft .NET usando C# 139 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Uma das ferramentas do produto é o SQL Server Configuration Manager 
(figura 68), que oferece todas as ações necessárias para o gerenciamento de 
bancos de dados, bem como determina as condições e parâmetros do produto. 
 
 
Figura 68 – Gerenciador de Configurações do SQL Express 
 
 Com essa ferramenta, você configura as condições como a sua aplicação 
pode comunicar-se com o servidor de banco de dados. Detalhes como protocolos 
ativos, portas de comunicação e serviços disponíveis são elementos de 
parametrização usando a ferramenta. 
 Para acessar a ferramenta: 
1. Clique no botão Iniciar; 
2. Aponte para Todos os Programas; 
3. Aponte para o item de menu Microsoft SQL Server 2005; 
4. Aponte para o subitem Configuration Tools; 
5. Clique no ícone SQL Server Configuration Manager. 
 
Conforme já tratamos neste tópico, a construçãode aplicações usando C# e 
SQL Server é facilitada com as ferramentas visuais disponibilizadas pela Microsoft. 
O Visual C# 2005 Express inclui várias ferramentas para apoiar o processo de 
desenvolvimento de aplicações usando banco de dados. O principal objetivo dessa 
integração é fazer com que o programador não precise alternar de uma aplicação 
para outra, provocando qualquer perda de produtividade. 
Programação Aplicada – Microsoft .NET usando C# 140 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
O Database Explorer é o elemento essencial para trabalhar com bancos de 
dados através do Visual C#. A ferramenta permite estabelecer conexão do projeto 
atual com um banco de dados a ser criado ou existente. Para acessar a janela do 
Database Explorer, clique no menu View e execute o comando Database Explorer 
(caso esse item não se apresente, aponte para o item de menu Other Views e no 
submenu apresentado, clique sobre o Database Explorer). 
 
 
3.1 Datasources 
 
 Datasources são os parâmetros necessários para realizar a conexão com um 
banco de dados. Em uma aplicação desenvolvida em C#, você pode estabelecer um 
Datasource para manter conexão da aplicação com um banco de dados em 
particular. 
 Para configurar um Datasource, você pode utilizar o Data Explorer e seguir as 
orientações fornecidas pela ferramenta para parametrizar uma conexão (figura 69). 
Clique com o botão direito do mouse sobre o item Data Connections, do Data 
Explorer e, no menu suspenso que será apresentado, clique sobre o item Add 
Connection. 
 
Figura 69 – Menu para adicionar uma conexão com banco de dados 
 
No ambiente do Visual C# 2005 Express, também há uma alternativa, o 
Assistente de configuração de um Datasource. O objetivo desse assistente é facilitar 
o processo de parametrização de uma conexão com banco de dados, apresentando 
um conjunto de janelas orientativas e que lhe solicitam informações para a 
composição final da conexão. 
Programação Aplicada – Microsoft .NET usando C# 141 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Para acessar o Assistente, clique no menu Data (figura 70) e execute o item 
de menu Add New Data Source... 
 
Figura 70 – Data Source Configuration Wizard 
 
 Após estabelecer conexão com o banco de dados, você poderá utilizar-se das 
ferramentas integradas de banco de dados, no Visual C# (figura 71), para trabalhar 
com os objetos contidos no banco de dados, como: efetuar consultas às tabelas e 
alterar algum atributo de uma tabela. 
 
Figura 71 – Visualizando dados do banco de dados 
Programação Aplicada – Microsoft .NET usando C# 142 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 Através do Visual C# e do DataSource, você pode realizar as seguintes 
operações no banco de dados conectado (aqui as principais listadas); 
• Realizar manutenções nas tabelas existentes; 
• Criar e excluir uma tabela; 
• Efetuar consultas em SQL para visualizar os dados contidos nas tabelas; 
• Criar Views com o objetivo de acelerar o uso de dados/consultas e criar 
Stored Procedures para elaborar programas que ficarão associados a 
determinados eventos ou pré-programados a serem executados a partir de 
código C#. 
 
4 DATA CONTROLS E ADO.NET 
 
 Existem várias formas para trabalhar com banco de dados nas aplicações em 
C#. Cada método atende a uma determinada finalidade e fornece ao programador 
meios mais rápidos ou mais difíceis para completar sua operação. Você pode 
trabalhar com dois métodos para acessar dados em sua aplicação: 
• Usando componentes visuais/controles que aceleram o processo de 
composição da aplicação; 
• Usando a biblioteca de classes da plataforma .NET para as operações de 
banco de dados. 
 
O meio mais simples para implementar um programa com banco de dados em 
Visual C# é usando o Asssitente de Datasources (figura 72). Após estabelecer 
conexão pela ferramenta, você pode arrastar o objeto que possua dados, como uma 
tabela ou uma visão, e soltar para um formulário existente na sua aplicação. 
 
Programação Aplicada – Microsoft .NET usando C# 143 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 
Figura 72 – Formulário com uma tabela inserida 
 
 Executado o procedimento, todos os componentes necessários para realizar a 
operação, foram inseridos no formulário, além disso, todo código de programação 
necessário foi gerado automaticamente no seu projeto. 
 
4.1 Data Controls 
 
 O processo de composição de um formulário com banco de dados, pôde ser 
avaliado no tópico anterior. O principal componente gerado no formulário foi um 
“DataGridView”, mas, além dele, outros foram inseridos. Vejamos a descrição de 
cada um deles no quadro abaixo e na figura 73: 
 
Controle Descrição 
Dataset Utilizado para representar os dados na memória 
DataGridView Apresenta os dados em formato de planilha 
BindingSource Realiza a conexão dos controles inseridos no formulário e o 
Datasource 
BindingNavigator Insere uma barra de navegação padrão no formulário, 
Programação Aplicada – Microsoft .NET usando C# 144 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
contendo as operações básicas de banco de dados 
 
 
 
Figura 73 – Componentes inseridos no formulário 
 
 
4.2 O que é ADO.NET? 
 
 O ADO.NET é um conjunto de bibliotecas de classes da plataforma .NET que 
o programador pode utilizar para construir programas com acesso a banco de dados. 
Na prática, é a forma alternativa de construção de uma aplicação, em que o 
programador precisa realizar praticamente toda atividade de conexão com banco de 
dados e manipulação das informações recuperadas. Vantagem desse método de 
trabalho: o programador possui total controle do que está acontecendo entre a 
aplicação e o banco de dados; em contrapartida exige maior volume de trabalho e 
verificação do código gerado, ações que são superadas usando as ferramentas 
visuais do Visual C#. 
 A história de modelos de programação para banco de dados em produtos 
Microsoft é longa. Existem grandes variações e versões de tecnologias para atender 
necessidades específicas de uma determinada aplicação. 
Programação Aplicada – Microsoft .NET usando C# 145 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
 O ADO.NET traz o que há de melhor nas experiências anteriores da Microsoft 
com o acesso a banco de dados, além de agregar funcionalidades importantes como 
suporte nativo e otimizado à Internet para trabalhar de forma off-line. 
 O modelo de objetos do ADO.NET está baseado em três componentes 
principais: 
• DataSet: é o componente principal da arquitetura do ADO.NET, 
principalmente para arquiteturas desconectadas, já que realiza um cache 
local na estação do usuário. É destinado para acesso a dados a partir de 
origens de dados independentes. Um DataSet possui um ou mais objetos 
DataTable, onde estão os dados armazenados; 
• DataView: é a classe responsável pela comunicação entre os 
componentes visuais da aplicação e o DataSet; 
• DataProvider: é o componente responsável em manter a comunicação 
dos demais componentes e o banco de dados. Seus objetos são 
connection, command, dataadaptor e datareader. 
 
 
 
Síntese 
 
Nesta aula você aprendeu como trabalhar com banco de dados em suas 
aplicações .NET, entender como a implementação pode ser realizada e quais as 
opções utilizadas para executar comandos e estabelecer as conexões de banco de 
dados e seus formulários. 
Você também aprendeu como trabalhar com o SQL 2005 Express, que é o 
produto mais simples da família de servidores de bancos de dados da Microsoft. Viu 
que, com este produto, pode realizar praticamente todas as funções essenciais para 
construir soluções usando banco de dados. 
Com esta aula, terminamos o módulode Elementos de Programação 
usando C#. Espero que você tenha obtido resultados satisfatórios com o conteúdo 
apresentado e que possa realizar os seus trabalhos de forma rápida e rica, 
elementos que fazem parte da filosofia da Microsoft para a construção de 
aplicações. 
Programação Aplicada – Microsoft .NET usando C# 146 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
Desejo-lhe boa sorte e não pare seus estudos em .NET, pois é um “mundo de 
oportunidades” que está em constante crescimento e hoje, está permitindo aos 
profissionais realizar cada vez melhor o seu trabalho. 
Um grande abraço! 
 
 
Exercícios Propostos 
 
1) Qual a biblioteca da plataforma .NET que fornece a capacidade de 
implementação de banco de dados nas aplicações em C#? 
______________________________________________________________ 
______________________________________________________________ 
2) Descreva qual o papel do Datasource na implementação de banco de dados 
com C#? 
______________________________________________________________ 
______________________________________________________________ 
______________________________________________________________ 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Programação Aplicada – Microsoft .NET usando C# 147 
 
 
SOCIESC – Sociedade Educacional de Santa Catarina 
 
REFERÊNCIAS 
 
GUNNERSON, E.; Introdução à Programação em C#. Ciência Moderna, 2001. 
 
LIBERTY J.; Programando C#. Alta Books, 2006. 
 
MSDN Academic Alliance. http://msdn.microsoft.com/academic/. Acessado em 14 
de abril de 2007. 
 
ROBINSON et al.; Profissional C#: Programando. Makron Books, 2004. 
 
TURTSCHI , A. , WERRY, J. , HACK G.; C# .NET: Guia do Desenvolvedor: 
Curso Completo. Alta Books, 2005.

Mais conteúdos dessa disciplina