Você está na página 1de 56

Programao em C# com Visual Studio .

NET

Prof. Eder Samaniego

Modificadores

Tanto classes quanto seus membros podem receber modificadores antes de seus nomes. Os modificadores mudam a visibilidade de uma classe ou membros. Muitos bugs podem ser resolvidos aplicando-se coerentemente conceitos de visibilidade.

Programao em C#

Modificadores de Parmetros

Um modificador de parmetro uma palavra reservada com uma finalidade especfica, utilizada antes da declarao da varivel no parmetro de um mtodo.
Modificador In:

Passagem por valor para a varivel de um mtodo. Funciona da maneira como estamos acostumados e no devem ser explicitamente declarados, o valor default.

Programao em C#

Modificadores de Parmetros

Modificador Ref:

Passagem por referncia. Na chamada tambm devemos utilizar o ref. Um argumento passado como ref deve ser necessariamente inicializado. Parmetro apenas de sada. Deve, necessariamente, ser atribudo dentro do mtodo. No recebe valores de entrada e esta a diferena de ref.

Modificador Out:

Programao em C#

Modificadores de Parmetros
using System; namespace SobreCargaMet { class Class1 { static double sum(double x, double y) { return x + y; } static void sum(double x, double y, out double R) { R = x + y; } public static void Main() { double a = sum(10,25); Console.WriteLine(a); sum(15,25, out a); Console.WriteLine(a); } } } Programao em C#

Modificadores de Parmetros
static void DoWork(int param) { param++; } static void Main() { int arg = 42; DoWork(arg); Console.WriteLine(arg); //escreve 42, no 43 } static void DoWork(ref int param) { param++; } static void Main() { int arg = 42; DoWork(ref arg); Console.WriteLine(arg); //escreve 43 } static void DoWork(out int param) { param = 42; } static void Main() { int arg; // no inicializado DoWork(out arg); Console.WriteLine(arg); //escreve 42 }

Programao em C#

Modificadores de Parmetros

O prximo programa tem por objetivo testar o modificador ref e out. Crie um projeto do tipo Console Application. Chame-o de RefOut. Adicione duas classes ao projeto atravs do boto esquerdo do mouse, Pass e WrappedInt. Abra o Program.cs.

Programao em C#

Modificadores de Parmetros

Programao em C#

Modificadores de Parmetros

Programao em C#

Modificadores de Parmetros

Programao em C#

10

Modificadores de Parmetros

A sada do programa a seguinte:


0 // i inicializado com 0 0 // o valor se perde no escopo 42 // i passado por referncia 0 // number inicializado com 0 42 // pasado por referncia 42 // inicializado internamente

Programao em C#

11

Modificadores de Classe

Modificador abstract

Tira a capacidade da classe ser instanciada


diretamente, podendo apenas ser herdada para ser especificada.

Modificador sealed

Tira a capacidade da classe ser herdada, podendo


ser somente instanciada. No comum.

Programao em C#

12

Modificadores de Membros

Aplicados a variveis, propriedades e mtodos de uma classe. Modificador abstract

Quando declarado um membro na classe pai, obriga o desenvolvedor a implementar o membro para a classe filha. No suporta implementao na classe pai. Indica que o mtodo ou assessor pode ser anulado por classes de herana. Suporta implementao na classe pai e no obriga a implementao na classe herdada.

Modificador virtual

Programao em C#

13

Modificadores de Membros

Modificador const

Aplicado em campos e variveis locais. A expresso


constante avaliada no tempo de compilao, no pode conter referncias.

Modificador event
da classe.

usado para ligar o cdigo de cliente aos eventos Modificar um mtodo ou assessor em uma classe
base herdada.
Programao em C#

Modifcador override

14

Modificadores de Membros

Modificador readonly
construtor da classe.

S pode ser alterado durante a declarao ou no Pertencem classe e no a uma instncia da


classe.

Modificador static

Modificador sealed

Anula a capacidade de herana do membro.


Programao em C#

15

Modificadores de Acesso

Modificador public
membros.

Acesso irrestrito ao tipo. Aplicado a classes e Nenhum acesso externo ao tipo e no herdado.
Aplicado a membros que sero acessados somente internamente a um tipo.

Modificador private

Modificador internal

Acesso de tipos que esto dentro de um mesmo


corpo, exemplo, uma biblioteca.
Programao em C#

16

Modificadores de Acesso

Modificador protected

Membro que herdado, mas no possui acesso


externo ao tipo onde foi declarado.

Modificador protected internal

Acesso limitado ao prprio tipo, as classes


derivadas e ao prprio assembly.

Programao em C#

17

Palavras Reservadas
Abstract As Base Bool Break byte case catch char checked class const continue decimal default delegate Do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal
Programao em C#

is lock long namespace new null object operator out override params private
18

Palavras Reservadas
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 volatile void while

Programao em C#

19

Operadores

Unrios

+,-, !, ~, ++x, --x, x++, x

Multiplicativos

*, /, %
+,-

Aditivos Deslocamento

<<, >>

Programao em C#

20

Operadores

Relacionamento

<, >, <=, >=, is

Igualdade

==

AND lgico e AND condicional

&, && |, ||

OR lgico e OR condicional

Programao em C#

21

Operadores

XOR lgico

Condicional Atribuio

condio ? Valor_true : valor_false


=, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >==

Programao em C#

22

Operadores

Lgicos

E expresso verdadeira se todas as condies

so verdadeiras OU expresso verdadeira se pelo menos uma condio for verdadeira NOT inverte o sinal

Programao em C#

23

Operadores

Binrios (dois operandos)

Todos os aritmticos (+, -, *, / e %) Relacionais (>, <, >=, <=) Igualdade (==) Desigualdade (!=)

Programao em C#

24

Operadores - Precedncia

Tabela em ordem crescente de precedncia.

Primria

(x), x.y, f(x), a[x], x++, x--, new, typeof, sizeof, checked, unchecked +, -, !, ~, ++x, --x, Unrio *, /, % Multipicativo +, Aditivo Deslocamento <<, >> <, >, <=, >=, is Relacional

Programao em C#

25

Operadores - Precedncia
Igualdade AND lgico XOR lgico OR lgico AND condicional OR condicional Condicional Atribuio == & ^ | && || ?: =, +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >==

Programao em C#

26

Operadores - Confuso
y + 2 = + y + 2 Se y = 5, qual o resultado da expresso acima? y + 2 = 7 ou y + 2 = 52?
Para y + 2 = 7, y + 2 = + (y + 2)

Programao em C#

27

Comandos Condicionais
if(expresso) { ... } if(expresso) { ... } else { ... } if(expresso) { ... } else if (expresso) { ... }

Programao em C#

28

Comandos Condicionais

Switch

Avalia uma expresso cujo resultado pode ser dos


seguintes tipos:

Cada um destes resultados ser comparado com

sbyte, byte, short, ushort, int, uint, long, ulong, char, string, enum

cada uma das sees case que compem o switch

Programao em C#

29

Comandos Condicionais

Switch
switch (expresso) { case constante1: .... break; case constante2: .... break; ... default: // No obrigatria .... break; }

Programao em C#

30

Comandos Condicionais

Crie um projeto Windows Application Chame-o de DateComparison O objetivo verificar duas datas fornecidas pelo usurio e responder falso ou verdadeiro a vrias comparaes.

Programao em C#

31

Comandos Condicionais

Programao em C#

32

Comandos Condicionais

Programao em C#

33

Comandos Condicionais

Programao em C#

34

Comandos Condicionais

Programao em C#

35

Comandos Condicionais

Faa um projeto Console Application chamado SwitchApp, com 2 mtodos: o Main e um chamado compInt. O compInt recebe 2 parmetros inteiros A e B. Atravs de um if deve retornar 0 para A igual a B, -1 se A menor que B e 1 se A maior que B. O mtodo Main pede 2 valores inteiros para o usurio, atravs do uso do mtodo Console.ReadLine().

Programao em C#

36

Comandos Condicionais

E usa um switch para receber o resultado da comparao do mtodo compInt e imprime na tela:

Valores iguais O primeiro valor menor O primeiro valor maior

Programao em C#

37

Comandos Condicionais

Programao em C#

38

Comandos Condicionais

Programao em C#

39

Loops

While

Indicado quando no sabemos o nmero de vezes


que devemos executar um bloco de cdigo, mas apenas a condio que deve ser satisfeita para executar o mesmo. A condio uma expresso booleana que dever ser verdadeira para garantir pelo menos uma iterao.

Programao em C#

40

Loops
while(expresso) { // cdigo enquanto a expresso // for verdadeira }

while(true) { .... }

Break interrompe a execuo do loop. Executa a prxima linha de cdigo aps o loop. Continue - interrompe a iterao atual e vai para a prxima iterao do loop. No sai do loop.
Programao em C#

41

Loops

Do / while Usamos este bloco quando quisermos que o mesmo seja executado pelo menos uma vez, independente da condio booleana ser satisfeita.

do {

.... } while(expresso)

Programao em C#

42

Loops

For

Varivel de inicializao que pode ser dentro do

loop Condio de parada Expresso que incrementa ou decrementa a varivel de inicializao


for(;;) { .... }
Programao em C#

for (int i = 0, i < 5, i++) { .... }

43

Loops

Foreach / in

Usado para varrer colees ou arrays. No necessrio a preocupao com:


Avaliao de um condio booleana para garantir


execuo. A inicializao de variveis com seu incremento. A forma de extrao do contedo do array ou coleo Os elementos do array ou coleo que forem varridos

Programao em C#

44

Loops
foreach(elemento in coleo) { .... }

static void Main(string[] args) { foreach(string s in args) { .... } }

Programao em C#

45

Loops
string[] regiao = {sul, sudeste, centro-oeste, nordeste, norte}; int[] digitos = {1, 2, 3, 4, 5, 6, 7, 8, 9}; foreach(string s in regiao) { .... } foreach(int i in digitos) { Console.WriteLine(i); //note que no h como pegar o ndice do array diretamente. }

Programao em C#

46

Loops

O prximo exerccio usa loops while e foreach para ensinar tambm a comear a manipular arquivos. Usaremos novos componentes:

OpenFileDialog

Abre o formulrio padro do SO para navegar pelo sistema e abrir um arquivo. Abre o formulrio padro do SO para navegar pelo sistema e salvar um arquivo. Similar ao TextBox, porm com formataes de arquivos texto.

SaveFileDialog

RichTextBox

Programao em C#

47

Loops

RichTextBox Enabled = false ScrollBars = both

Programao em C#

48

Loops

Programao em C#

49

Loops

Programao em C#

50

Loops

Programao em C#

51

Loops

O prximo exerccio tem por objetivo o uso do loop do/while. Faa um projeto com um Console Application que pede um nmero inteiro para o usurio e imprime o nmero na ordem reversa dgito por dgito.

Programao em C#

52

Loops

Exemplo:

Entrada:

Sada:

12345 5 45 345 2345 12345

Programao em C#

53

Loops

Programao em C#

54

Loops

O prximo exerccio tem por objetivo o uso do loop for. Faa um projeto com um Console Application que pede um nmero inteiro para o usurio e imprime todos os nmero pares do nmero dado at o 0. Ordem decrescente. No esquea de forar para que o nmero dado seja maior que 0.
Programao em C#

55

Loops

Programao em C#

56