(Parte 1 de 10)

Apostila C#

Conceitos Basicos

Universidade Tecnologica Federal do Parana Diogo Cezar Teixera Batista

Cornelio Procopio

23 de setembro de 2008 Apostila baseada nas obras de : Fabio R. Galuppo, Edwin Lima, Breno Gontijo e Rudson Kiyoshi

Apostila C# Diogo Cezar Teixera Batista

Sumario

1.1 Plataforma .NET8
1.1.1 Abordagem .NET8
1.1.2 Arquitetura .NET9
1.1.2.1 CLR (Commom Language Runtime)9
1.1.2.2 CLS (Common Language Specification)9
1.1.2.3 BCL (Base Classe Library)9
2.1 Caracterısticas do C#9

2 A linguagem C# 9

3.1 Main1

3 PRIMEIRO PROGRAMA 1

4 ESTRUTURA DE UM PROGRAMA 1

5.1 Tipos de dados13
5.1.1 Tipos Valor e Tipos Referencia14
5.1.2 Conversao de Tipos14
5.1.3 O Objeto Convert15
5.2 Arrays16

5 VARIAVEIS NA LINGUAGEM C# 12

6.1 Selecao17
6.1.1 Comando if18
6.1.2 Comando switch20
6.2 Iteracao ou Loop2
6.2.1 Comando for2
6.2.2 Comando foreach24

Apostila C# Diogo Cezar Teixera Batista

7.1 Operadores Aritmeticos26
7.2 Operadores de Incremento e Decremento28
7.3 Operadores Logico, Relacional e Condicional29
7.4 Operacao de Atribuicao29

7 OPERADORES 25

8.1 Convencoes e Padroes de Nomenclatura30
8.1.1 Nomeacao de variaveis31
8.1.2 Nomeacao de classes, metodos, propriedades, entre outros31
8.2 Classes31
8.3 Propriedades32
8.4 Modificadores de visibilidade3
8.5 Heranca3
8.5.1 This e Base34
8.6 Declaracao e Chamada de Metodos e Objetos35
8.7 Metodos e Atributos Static35
8.8 Const e ReadOnly36
8.9 Classes e Metodos Abstratos36
8.10 Interfaces37
8.1 Metodos Virtuais38
8.12 Classes e Metodos sealed - Finais38
8.13 Entao, quando devo utilizar o que?39

8 PROGRAMACAO BASEADA EM OBJETOS 30

9.1 Comando throw40
9.2 Bloco try - catch42
9.3 Bloco try - finally42
9.4 Bloco try - catch - finally43
9.5 A classe Exception4

9 TRATAMENTO DE ERROS E EXCECOES 40

10.1 Classes DirectoryInfo e FileInfo45

Apostila C# Diogo Cezar Teixera Batista

10.1.2 Acessando as propriedades47
10.2 Criando arquivos usando a classe FileInfo48
10.2.1 Entendendo o metodo Open()48
10.2.2 Entendendo a classe FileStream48

Apostila C# Diogo Cezar Teixera Batista

1 Tipos primitivos do C#13
2 Tipos de conversao automatica15
3 Operadores do C#26
4 Classes de excessoes mais comuns em C#41
5 Principais classes do System.IO46

Apostila C# Diogo Cezar Teixera Batista

1 Hello World em C#1
2 Estrutura de um programa em C#12
3 Exemplo de conversao automatica de tipos14
4 Exemplo de utilizacao do objeto Convert15
5 Sintaxe para a declaracao de Arrays16
6 Sintaxe para a declaracao de Arrays com duas ou mais dimensoes16
8 Sintaxe para a inicializacao de Arrays com duas ou mais dimensoes16
9 Passando Arrays a metodos17
10 Exemplo do comando if em C#18
1 Ifs com And e Or18
12 Ifs aninhados19
13 Curto-circuito19
14 Exemplo if-else-if19
15 Operador Ternario20
16 Comando switch21
17 Comando switch2
18 Iteracao for2
19 Iteracao for (exemplo)23
20 Iteracao foreach (exemplo)24
21 Iteracao do while (exemplo)25
2 Operadores Unarios26
23 Operadores Binarios27
24 Exemplo Operadores Binarios27
25 Operadores de Incremento e Decremento28
26 Exemplo do operador de negacao29
27 Exemplo do operador de atribuicao29
28 Exemplo do operador de atribuicao composta30
29 Exemplo de codificacao sem qualquer padrao de nomenclatura30
30 Exemplo de codificacao com padrao de nomenclatura30

Apostila C# Diogo Cezar Teixera Batista

32 Exemplo de Propriedades em C#32
3 Exemplo de utilizacao dos modificadores de visibilidade C#3
34 Exemplo de declaracao de heranca em C#34
35 Exemplo de this e base em C#34
36 Exemplo instanciacao de objeto em C#35
37 Exemplo acesso a atributos e metodos em C#35
38 Exemplo acesso a atributos e metodos estaticos em C#36
39 Exemplo de implementacao de uma classe abstrata em C#37
40 Exemplo de implementacao de uma interface em C#37
41 Exemplo de implementacao de uma classe sealed em C#39
42 Exemplo de utilizacao do comando throw41
43 Exemplo de utilizacao do bloco try - catch42
4 Exemplo de utilizacao do bloco try - finally43
45 Exemplo de utilizacao do bloco try - catch - finally43
46 Membros da classe Exception45
47 Criacao de diretorio46
48 Criacao de subdiretorios47
49 Propriedades de um diretorio47
50 Propriedades de arquivos47
51 Criando arquivos com a classe FileInfo48
52 Abrindo arquivos com a classe FileInfo48
53 Escrevendo/Lendo com FileStream48

Apostila C# Diogo Cezar Teixera Batista

1 INTRODUC AO

Entende-se por uma plataforma de desenvolvimento, um conjunto de instrucoes ordenadas que tem por objetivo resolver um problema do mundo real, abstraindo-o em um conjunto de comandos logicos.

1.1 Plataforma .NET

.NET e a nova plataforma de desenvolvimento da Microsoft que tem como foco principal o desenvolvimento de Servicos WEB XML. Um servico Web XML, ou simplesmente Web Service transcende ao que nos conhecemos como paginas dinamicas, as quais podem ser acessadas a partir de um browser. A ideia central de um Web Service consiste em permitir que as aplicacoes, sejam elas da Web ou Desktop, se comuniquem e troquem dados de forma simples e transparente, independente do sistema operacional ou da linguagem de programacao.

• Independencia de linguagem de programacao: o que permite a implementacao do mecanismo de heranca, controle de excecoes e depuracao entre linguagens de programacao diferentes;

• Reutilizacao de codigo legado: o que implica em reaproveitamento de codigo escrito usando outras tecnologias como COM, COM+, ATL, DLLs e outras bibliotecas existentes;

• Tempo de execucao compartilhado: o ”runtime” de .NET e compartilhado entre as diversas linguagens que a suportam, o que quer dizer que nao existe um runtime diferente para cada linguagem que implementa .NET;

• Sistemas auto-explicativos e controle de versoes: cada peca de codigo .NET contem em si mesma a informacao necessaria e suficiente de forma que o runtime nao precise procurar no registro do Windows mais informacoes sobre o programa que esta sendo executado. O runtime encontra essas informacoes no proprio sistema em questao e sabe qual a versao a ser executada, sem acusar aqueles velhos conflitos de incompatibilidade ao registrar DLLs no Windows;

• Simplicidade na resolucao de problemas complexos.

Apostila C# 8

Apostila C# Diogo Cezar Teixera Batista

1.1.2 Arquitetura .NET

1.1.2.1 CLR (Commom Language Runtime) O CLR, ou tempo de execucao compartilhado, e o ambiente de execucao das aplicacoes .NET. As aplicacoes .NET nao sao aplicacoes Win32 propriamente ditas (apesar de executarem no ambiente Windows), razao pela qual o runtime Win32 nao sabe como executa-las. O Win32, ao identificar uma aplicacao .NET, dispara o runtime .NET que, a partir desse momento, assume o controle da aplicacao no sentido mais amplo da palavra, porque, dentre outras coisas, e ele quem vai cuidar do gerenciamento da memoria via um mecanismo de gerenciamento de memoria chamado Garbage Collector (GC) ou coletor de lixo. Esse gerenciamento da memoria torna os programas menos susceptıveis a erros. Mais ainda, o CLR como seu proprio nome o diz, e compartilhado e, portanto, nao temos um runtime para VB.NET, outro para C# etc. E o mesmo para todo mundo.

1.1.2.2 CLS (Common Language Specification) O CLS, ou EspecificacaoComumda Linguagem, e um subconjunto do CTS, e define um conjunto de regras que qualquer linguagem que implemente a .NET 8 deve seguir a fim de que o codigo gerado resultante da compilacao de qualquer peca de software escrita na referida linguagem seja perfeitamente entendido pelo runtime .NET.

1.1.2.3 BCL (Base Classe Library) Oferece ao desenvolvedor uma biblioteca consistente de componentes de software reutilizaveis que nao apenas facilitem, mas tambem que acelerem o desenvolvimento de sistemas.

2 A linguagem C#

C# (pronunciada ”C Sharp”), e uma linguagem de programacao da Plataforma .NET, derivada de C/C++ orientada a objetos. E a linguagem nativa para .NET Common Language Runtime(CLR), mecanismo de execucao da plataforma .NET. Isso possibilita a convivencia com varias outras linguagens especifıcadas pela Common Language Subset(CLS). Por exemplo, uma classe base pode ser escrita em C#, derivada em Visual Basic e novamente derivada em C#.

2.1 Caracterısticas do C#

• Simplicidade: os projetistas de C# costumam dizer que essa linguagem e tao poderosa quanto o C++ e tao simples quanto o Visual Basic.

Apostila C# 9

Apostila C# Diogo Cezar Teixera Batista

• Completamente orientada a objetos: em C#, qualquer variavel tem de fazer parte de uma classe.

• Fortemente tipada: isso ajudara a evitar erros por manipulacao impropria de tipos, atribuicoes incorretas etc.

• Gera codigo gerenciado: assim como o ambiente .NET e gerenciado, assim tambem e a linguagem C#.

• Tudo e um objeto: System.Object e a classe base de todo o sistema de tipos de C#.

• Controle de versoes: cada assembly gerado, seja como EXE ou DLL, tem informacao sobre a versao do codigo, permitindo a coexistencia de dois assemblies homonimos, mas de versoes diferentes no mesmo ambiente.

• Suporte a codigo legado: o C# pode interagir com codigo legado de objetos COM e DLLs escritas em uma linguagem nao-gerenciada.

• Flexibilidade: se o desenvolvedor precisar usar ponteiros, o C# permite, mas ao custo de desenvolver codigo nao-gerenciado, chamado ”unsafe”.

• Linguagem gerenciada: os programas desenvolvidos em C# executam num ambiente gerenciado, o que significa que todo o gerenciamento de memoria e feito pelo runtime via o GC (Garbage Collector), e nao diretamente pelo programador, reduzindo as chances de cometer erros comuns a linguagens de programacao onde o gerenciamento da memoria e feito diretamente pelo programador.

Apostila C# 10

(Parte 1 de 10)

Comentários