Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagem de
Programação Comercial
Recursos do Ambiente de Desenvolvimento
Inovações na Linguagem e Sintaxe
2
Introdução
Introdução: Linguagem C#
Estruturas básicas da linguagem
Tipos
Atribuição
Operador =
Operadores “abreviados”
Operadores de incremento/decremento
Exemplo prático 1
3
Introdução
Comandos Condicionais
if/else
switch/case
operador ternário
Exemplo prático 2
Comandos de Loop
while e do/while
for
quebra de fluxo: break e continue
Exemplo prático 3 (console)
4
Introdução
Fluxo de erros
Exceções
throw
try/catch/finally
Exemplo prático 4 (console)
Estruturas de dados – parte 1
Arrays
Comando foreach
Exemplo prático 5
5
Introdução: Linguagem C#
100% Orientada a objetos
Tudo pertence a uma classe
Não existe escopo “global”
Baseada em eventos
Clique de um botão
Seleção de um elemento em uma lista
“Tick” de um relógio
Sintaxe similar a C, C++ e Java
“Case sensitive” ( Palavra PALAVRA
palavra )
6
Introdução: Linguagem C#
Statements (comandos)
Delimitados por ;
Blocos de código delimitados por { }
Comentários
Comentários de uma linha //
Comentários de múltiplas linhas /* */
Comentários para documentação ///
Declaração de variáveis
<tipo> <nome da variável>;
<tipo> <nome da variável> = <valor inicial>;
7
Introdução: Linguagem C#
8
Introdução: Linguagem C#
Constantes
<visibilidade> const <tipo> <nome> = <valor>;
Ex: public const double PI = 3.141593;
Enumerações
Conjunto limitado de valores
enum Estacoes
{Primavera,Verao,Outono,Inverno};
9
Introdução: Linguagem C#
Estruturas
Tipos complexos de dados
Agregam outros tipos
Ex:
struct Date
{
public int year;
public int month;
public int day;
}
10
Introdução: Linguagem C#
Estruturas
Membros chamados através de .
Ex:
Date data;
data.year=2008;
data.month=8;
data.day=1;
11
Atribuição
Define o valor de uma variável baseado em
uma expressão
Sintaxe:
<variável> = <expressão>
Ex: dias = dias + 30;
Incremento e Decremento
Operadores ++ e --
Podem ser pré-fixados ou pós-fixados
Ex: ++p;(pré) x--; (pós)
Pré: soma ou subtrai, depois avalia o
valor
Pós: avalia o valor, depois soma ou
subtrai
13
Atribuição
...
int i=2;
int j = ++i;
//valores aqui : i = 3 e j = 3
i=5;
j= i++;
...
14
Exemplo Prático 1
15
Comandos condicionais
17
Comando condicionais – Operadores booleanos
20
Comando condicionais – operador ?:
22
Exemplo Prático 2
23
Comandos repetitivos
Loops
Define um conjunto repetitivo de
comandos
Executa um trecho de código
repetidas vezes até uma condição
de parada
while
do/while
for
24
Comando repetitivos – while
25
Comandos repetitivos - while
26
Comando repetitivos – do/while
do
{
trecho de código a ser repetido
}
while (expressão booleana)
27
Comandos repetitivos – do/while
Similar ao while
Repete enquanto a expressão for
verdadeira
Executa o corpo do loop antes de
verificar a expressão
Corpo do loop pode executar 1 ou
mais vezes
28
Comandos repetitivos
comandos
condição comandos
true
false condição
true
false
while do/while
29
Comandos repetitivos – for
30
Comando repetitivos – for
31
Comando repetitivos – for
expressão1; //Inicialização
32
Comandos repetitivos – break e continue
break
Termina um loop prematuramente
Ao ser executado continua o fluxo a partir
do comando seguinte ao loop
continue
Pula o resto da execução do corpo e inicia
a próxima iteração
Em um while/do-while: avalia a condição de
parada
Em um for: efetua a expressão de “passo” e
logo a seguir avalia a condição de parada
33
Exemplo Prático 3
34
Tratamento de Exceções
Tratamento de erros
Similar a C++ (também utilizado em
Java)
Permite tratar (ou conter) erros ocorridos
Programas mais tolerantes a falhas
35
Tratamento de Exceções
comando
erro? tratamento
comando
erro? tratamento
36
Tratamento de Exceções
Erro
comandos tratamento
Erro
comandos tratamento
37
Comando condicionais – fluxo normal
public int soma(int numero1, int numero 2)
{
int valorRetorno = 0;
return valorRetorno;
}
38
Tratamento de Exceções – fluxo normal
Aplicação
Método 1
Método 2
Método 3
39
Tratamento de Exceções – exceção
Aplicação
Método 1
Método 2
Método 3
40
Tratamento de Exceções – exceção
Aplicação
Método 1
Método 2
Método 3
41
Tratamento de Exceções – exceção
Aplicação
Método 1
Método 2
Método 3
42
Tratamento de Exceções – exceção
43
Tratamento de Exceções
Exceções
Objetos que representam erros
Classe System.Exception
Pode existir uma “hierarquia” de erros
(via herança de classes)
44
Tratamento de Exceções - throw
Ao terminar a execução de um comando o
próximo é chamdo
Ao terminar um método o fluxo volta para o
próximo comando após a chamada deste
Ao invés de retornar pelo fluxo normal “lança”
um erro
Será tratado pelo catch do bloco try que protege
este comando
Se não houver um bloco try é lançada para o nivel
superior (até quebrar a aplicação se não houver
tratamento algum)
45
Tratamento de Exceções - throw
Sintaxe:
throw variavelDaClasseException;
46
Comando condicionais –
try/catch/finally
try
{
BLOCO 1: bloco de código do fluxo normal da aplicação
}
catch (ClasseExcecao1 nome)
{
BLOCO 2: tratamento do erro representado por ClasseExcecao1
}
catch (ClasseExcecao2 nome)
{
BLOCO 3:tratamento do erro representado por ClasseExcecao2
}
finally
{
BLOCO FINAL:vai ser sempre executado (após o BLOCO 1, 2, 3 ou
4)
}
47
Tratamento de Exceções
Bloco try
Código que representa o fluxo normal da
aplicação (o que deve acontecer se não
houver um erro)
Blocos catch
Um bloco por tratamento de erro
diferente que pode ocorrer
Os blocos devem ser da exceção mais
específica (filha) para a mais genérica
(pai)
48
Tratamento de Exceções
Bloco finally
Bloco que é sempre executado, seja
após o fluxo normal ou o tratamento de
um erro
Em geral utilizado para liberar recursos
utilizados naquele bloco
49
Exemplo Prático 4
50
Arrays
Estrutura de dados
Conjunto de elementos do mesmo tipo
Seqüencial
Estática – tamanho fixo após definida
Podem ser multidimensionais
51
Arrays
Criação - Sintaxe:
<tipo>[] nome {= new <tipo>[<tamanho>] } ;
52
Arrays
Acesso a um elemento - Sintaxe:
nome[<posição>]
lista[0] .. lista[9]
lista[10] - IndexOutOfRangeException
53
Arrays multidimensionais - retangulares
Criação:
Acesso:
jogoDaVelha[1,1] = ‘X’;
54
Arrays multidimensionais – jagged
tamanhos variáveis de acordo com a
“linha”
Criação:
Acesso:
a = arrayVariavel[1][1];
55
Comando foreach
Comando repetitivo
Permite percorrer os elementos de
um conjunto seqüencialmente(Array
e outras estruturas que veremos
posteriormente)
Útil principalmente para percorrer
listas de objetos
56
Comando foreach
foreach (<tipo do elemento> <nome do
elemento> in <lista de elementos>)
{
}
Ex:
58