linguagem c# versão – 090528 prof.: mauro césar lopes

76
Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Upload: internet

Post on 16-Apr-2015

109 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Linguagem C#

Versão – 090528

Prof.: Mauro César Lopes

Page 2: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Sumário

• Identificadores

• Tipos

• Constantes

• Enumerações

• Expressões

• Declarações

• Bloco de declarações

Page 3: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Identificadores

• São nomes utilizados para identificar os elementos nos seus programas. Esses elementos podem ser: namespace (espaço de nomes), classes, métodos, variáveis, etc.

• Podemos usar apenas letras, número e sublinhado para compor o nome dos identificadores

Page 4: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Palavras Chaves

• C# reserva 77 identificadores, os quais não poderão ser utilizados para outros propósitos

• Alguns exemplos: bool, break, char, default, enum, float, ...

Page 5: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Variáveis

• Uma variável é definida como um lugar onde podemos armazenar dados temporariamente e usá-los posteriormente

• Normalmente um variável possui um nome (identificador) que é usado para acessar seu conteúdo

• Uma variável poderá armazenar um número inteiro, de ponto flutuante, um caractere, uma cadeia de caracteres (String) , um valor booleano, etc.

• O nome de uma variável pode conter letras, número e ‘_’ (não pode haver sinais de pontuação e espaços em branco)

Page 6: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Boas práticas de programação

• Adote uma convenção de nomes que torne claras as variáveis definidas– Não utilize sublinhados nos identificadores

Exemplo:Use valorMercadoria ao invés de valor_da_mercadoria

– Não use identificadores cuja única diferença seja entre letras maiúsculas e minúsculas

– É importante notar que C# faz diferença entre letras maiúsculas e minúsculas

– Comece o nome com uma letra

Page 7: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Tipos de variáveis

Define o tipo de dados que a variável irá armazenar

• Inteira– byte, short, int, long

• Ponto flutuante– float, double, decimal

• Caractere– char

• Booleana– bool: valores true (verdadeiro), false (falso)

Page 8: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Tipos de variáveis

Tipo Tamanho (em bytes)

Tipo .NET Descrição

byte 1 Byte Sem sinal (0-255)

char 2 Char Caractere Unicode

bool 1 Boolean Booleano (Verdadeiro ou Falso)

sbyte 1 Sbyte Com sinal (-128 a 127)

short 2 Int16 Com sinal

ushort 2 UInt16 Sem sinal

int 4 Int32 Com sinal

uint 4 UInt32 Sem sinal

float 4 Single Números de ponto flutuante

double 8 Double Números de ponto flutuante de precisão dupla

decimal 16 Decimal Valores monetários

long 8 Int64 Números inteiros

ulong 8 UInt64

Page 9: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Tipos de variáveis (2)

Tipo Tamanho (em bytes)

Tipo .NET

Descrição

byte 1 Byte Sem sinal (0-255)

char 2 Char Caractere Unicode

bool 1 Boolean Booleano (true=Verdadeiro ou false=Falso)

short 2 Int16 Com sinal (-32.768 a 32.767)

int 4 Int32 Com sinal (-2.147.483.648 e 2.147.483.647)

float 4 Single Números de ponto flutuante. Armazena os valores de aproximadamente +/- 1,5*10-45 até aproximadamente +/-3,4*10^38 com sete número significativos. Usa o sufixo F

double 8 Double Números de ponto flutuante de precisão dupla (com 15 a 16 números significativos)

decimal 16 Decimal Valores monetários. Precisão fixa até 28 dígitos e a posição do ponto decimal. É normalmente usado em cálculos financeiros. Exibe sufixo “m” ou “M”

long 8 Int64 Números inteiros com sinal de -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807

Page 10: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Variáveis

• Uma variável poderá ser signed (sbyte, short, int) ou unsigned (byte, ushort, uint), isto é, com sinal ou sem sinal.

• Uma variável unsigned possui apenas valores positivos

• Uma variável signed possui valores positivos e negativos

Page 11: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Exemplos de declaração de variáveis

• int a, idade;• char ch, caracter;• float f, valor;• double d;• string s;

Toda variável deverá ser declarada explicitamente antes de ser usada

Page 12: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Atribuição de valores a variáveis

• Podemos atribuir o valor a uma variável usando o símbolo ‘=‘ (operador de atribuição)

• Exemplos:

int a = 1; // atribui o valor 1 a variável inteira a

float f = -8.76F; // observe o sufixo F

char c=‘a’;

Page 13: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Atribuições

• Se tentarmos atribuir um número a uma propriedade do tipo texto o programa não irá compilar

• Por exemplo– value.text = 1; erro– value.text = “1”; ok, porém o número um está

sendo tratado como texto e não como número– value.text = string.Parse(1); o número um é

convertido de inteiro para uma string pelo uso do método parse da classe string

Page 14: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comentários

• // comentário até o final da linha• /*

... Comentário multilinha*/

Os comentários são ignorados pelo compilador, porém são úteis aos desenvolvedores porque ajudam a comentar o que o programa está fazendo

Page 15: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operadores

• Numéricos agem em valores para criar novos valores

• Lógicos ou Booleanos é um operador que faz cálculos cujo resultado é verdadeiro ou falso.

• Relacionais são usados para descobrir se um valor é menor ou maior que outro do mesmo tipo

• Binários agem sobre dois operandos

Page 16: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operadores Numéricos

++, -- Incremento, decremento

+, -, *, /, % adição, subtração, multiplicação, divisão, módulo (resto)

Exemplo:

int a = 7;int b = 3;int x,y;x = a / b;y = a % b;

Page 17: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operador ++

int x;int y;

x = 23;y = x++; // operador pós-fixadoConsole.WriteLine(x + " " + y); // 23 24

x = 23;y = ++x; // operador pré-fixadoConsole.WriteLine(x + " " + y); // 24 e 24

Page 18: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operadores Relacionais e Lógicos (Booleanos)

Operador Ação

==, != Igual a, diferente de

>, >=, <, <= Maior que, maior ou igual a, menor que, menor ou igual a

&& “E” lógico (AND)

|| “OU” lógico (OR)

! “NÃO” lógico

Um operador booleano é um operador que faz um cálculo cujo resultado é true (verdadeiro) ou false (falso)

Page 19: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operadores Lógicos

Podem ser usados para testar condições mais complexascombinando condições simples

• Operador && (“e” lógico - AND)• Operador || (“ou” lógico - OR)• Operador ! (“não” lógico - NOT)

Exemplo:

bool porcentagemValida = (porcentagem>=0) && (porcentagem<=100);

Page 20: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operadores Relacionais

> Maior que

>= maior ou igual a

< menor que

<= menor ou igual a

Page 21: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operadores Lógicos Bit a Bit

& “E” binário

^ “XOR” ou-exclusivo

| “OU” binário

~ “NÃO” binário

>> deslocamento de bits a direito

<< deslocamento de bits a esquerda

Page 22: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Operadores de igualdade e atribuição

Não confunda o operador de igualdade ‘==‘ com o operador de atribuição ‘=‘.

A expressão x==y compara x com y tem valor true se os dois valores forem idênticos e false caso contrário.

Já a expressão x=y atribui o valor de y a variável x

Page 23: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Expressões

• São combinações de variáveis, constantes e operadores

• Quando montamos expressões temos que considerar a ordem em que os operadores são executados

• Essa ordem é definida pela tabela de precedência

Page 24: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Precedência de OperadoresCategoria Operadores

Primário (x) x.y x’y f(x) a[x] x++ x– new typeof sizeof checked unchecked stackalloc

Unário + - ! ~++x –x (T)x *x &x

Multiplicativo * / %

Aditivo + -

Deslocamento << >>

Relacional < > <= >= is as

Igualdade == !=

Lógico AND &

Lógico XOR ^

Lógico OR |

Condicional AND &&

Condicional OR ||

Condicional ?:

Atribuição = *= /= %= += -= <<= &= ^= |=

Page 25: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Seqüência de comandos

• Um programa é uma seqüência de comandos ou instruções (executa uma ação)

<comando 1>;

<comando 2>;

...

<comando N>;

Page 26: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Bloco de comandos

• Um bloco é uma seqüência de instruções agrupadas entre uma chave de abertura ({) e uma de fechamento (})

• Um bloco inicia um novo escopo

• Novas variáveis poderão ser definidas dentro do bloco, porém seus valores serão perdidos no final do bloco

Page 27: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comandos condicionais

• Permitem que uma expressão seja avaliada e que uma ação seja executada no caso da expressão ser avaliada verdadeira (true) ou falsa (false).

Page 28: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando if

É usado para que possamos escolher entre dois blocos diferentes de código com base no resultado de uma expressão booleana.

A sintaxe de uma instrução if é:

if(expressãoBooleana)

instrução-1;

else

instrução-2;

Page 29: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando if - Exemplo

int a = 5;

if(a<0)

Console.WriteLine (“a é negativo”);

else

Console.WriteLine (“a é positivo”);

Page 30: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando if - Exemplo

int a = 5;if(a<0) { // avalia a condição a<0 Console.WriteLine (“a é negativo”);}else{ Console.WriteLine (“a é positivo”);}

Page 31: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comandos if em cascataif(dia==0) nome=“Domingo”;else if (dia==1) nome=“Segunda-Feira”;else if (dia==2) nome=“Segunda-Feira”;else if (dia==3) nome=“Segunda-Feira”;else if (dia==4) nome=“Segunda-Feira”;else if (dia==5) nome=“Segunda-Feira”;else if (dia==6) nome=“Segunda-Feira”;else if (dia==1) nome=“Segunda-Feira”;

Page 32: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Switchswitch (expressãoDeControle){case expressãoConstante: instruções; break;case expressãoConstante: instruções; break;...default: instruções; break;}

Page 33: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Switch

• expressãoDeControle: é avaliada uma única vez

• expressãoConstante

Page 34: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comparação if / switch

if(dia==0) nome=“Domingo”;else if(dia==1) nome=“segunda-feira”;...else nome=“desconhecido”;

switch(dia){ case 0: nome=“Domingo”; break; case 1: nome=“segunda-feira”; break ... default: nome=“desconhecido”; break;}

Page 35: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Controle de Fluxo

Um loop (laço) é uma série de instruções que devem ser repetidas até que uma certa condição seja encontrada

Page 36: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Controle de Fluxo (2)

• Loops (laços) com teste no início (while)

• Loops (laços) com testes no final (do/while)

• Loops (laços) de tamanho definido (for)

• Saindo de loops (laços) antes do término (break)

• Retestando a condição em loops (laços) (ex: continue)

Page 37: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando while

Repete o laço enquanto uma condição for verdadeira

Exemplo:int i=0;while(i<5) { Console.WriteLine (i); i = i + 1;}

Page 38: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando do/while

int i=0;

do {

Console.WriteLine("i={0}",i);

i = i + 1;

} while (i<5);

Page 39: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Exemplo do uso de do/while

do { Console.WriteLine(“Menu”); Console.WriteLine(“1. Incluir”); Console.WriteLine(“2. Alterar”); Console.WriteLine(“3. Excluir”); Console.WriteLine(“4. Consultar”); Console.WriteLine(“0. Sair”); String opcao=Console.ReadLine();

} while(opcao!=“0”);

Page 40: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Exercício

• Escreva uma aplicação que leia e exiba a tecla lida enquanto a tecla ‘s’ não for pressionada. A aplicação deverá contar também o número de teclas pressionadas e exibi-las no final da aplicação

Page 41: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando for

Repete um loop (laço) um determinado número de vezes

Exemplo:

int i = 0;

for(i=0;i<5;i++) {

Console.WriteLine("i={0}",i);

}

Page 42: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comparação for x while

for(

inicialização;

condição;

incremento

)

declaração;

inicialização;

while(condição)

{

declaração;

incremento;

}

Page 43: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comparação for x while

int i;

for(i=0; i<=9; i++)

{

Console.WriteLine(i);

}

int i;

i=0;

while(i<=9)

{

Console.WriteLine(i);

i++;

}

Page 44: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Loop Infinito

int i;

for(;;)

{

Console.WriteLine(i);

}

int i;

i=0;

while(true)

{

Console.WriteLine(i);

}

Page 45: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando break

int i=0;

while (i++<10) {

Console.WriteLine("i={0}",i);

if(i==5) {

break;

}

}

Page 46: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Exemplo do Comando Break

int numTeclas=0;while (true) { // loop infinito // leia uma tecla em ch if(ch==‘s’) { break; } // exibe a tecla pressionada // incrementa contador de teclas pressionadas numTeclas++;}

Page 47: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Comando continue

int 0=0;while (i<10) { if(i%2!=0) {// testa se o número for par continue; } // exibe os números ímpares Console.WriteLine(i); i++;}

Page 48: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Formatação de Cadeia de Caracteres

{númParâmetro,espaçoReservado:formatação}

onde:• númParâmetro: indica que parâmetro está

sendo formatado• espaçoReservado: indica o número de

caracteres mínimos para ocupar com o parâmetro

• formatação: indica formatação específica do tipo de dados a utilizar

Page 49: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Formatação de cadeia de caracteres - Exemplo

Especificação

Aplicação Significado

C valores em geral valor monetário de acordo com o pais local

D inteiros inteiros genéricos

E valores em geral notação científica

F valores reais numero em formato de ponto fixo

G valores em geral geral (é utilizada a representação mais adequada ao número)

N valores em geral numero de acordo com o pais local

P valores em geral percentagem

X inteiros notação científica

Page 50: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Exemplo

• {0,4} parâmetro 0, 4 espaços reservados com alinhamento à direita, sem formatação específica

• {0,-4} parâmetro 0, 4 espaços reservados com alinhamento à esquerda, sem formatação específica

Page 51: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Exemplos• Console.WriteLine("{0:C}", 1000.32);• Console.WriteLine("{0:D}", 23);• Console.WriteLine("{0:E2}", 13.322);• Console.WriteLine("{0:F2}", 13.322);• Console.WriteLine("{0:G}", 13.322);• Console.WriteLine("{0:G}", 13);• Console.WriteLine("{0:N}", 1000000.32);• Console.WriteLine("{0:P}", 0.43);• Console.WriteLine("{0:X}", 29);

Page 52: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Concatenção de Strings

• Console.WriteLine(“mauro “ + “cesar “ + “lopes”);

• Console.WriteLine(“3 “ + “7”);• Retorna a string 37 e não a operação de

3+7=10• Para obtermos a soma de 3 + 7 teríamos

que proceder da seguinte forma:• Console.WriteLine(int.Parse(“3“) +

int.Parse(“7”));

Page 53: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Conversão de Tipos

• Use o método chamado Int32.Parse ou int.Parse para converter um valor contido em uma string em um inteiro se você precisar realizar cálculos aritméticos em valores armazenados em string

Page 54: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Conversão de Tipos// o método Console.ReadLine() recebe // retorna uma variável do tipo StringString s = Console.ReadLine();// quando temos um número representado por// uma string não podemos fazer operações aritméticas com ele// Abaixo estão definidas as variáveis i, f e dint i;float f;double d;// converte uma variável do tipo String (s no exemplo) em um inteiroi = int.Parse(s);// converte uma variável do tipo String (s no exemplo) em um floatf = float.Parse(s)// converte uma variável do tipo String (s no exemplo) em um doubled = double.Parse(s)

Page 55: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Definição de Constantes

const <tipo> <nomeDaConstante> = <valor>

Exemplos:

const int numLinhas = 3;

const int numColunas = 2;

Page 56: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Arrays

• Um array é um vetor ou matriz que permite guardar um certo conjunto de variáveis, todas do mesmo tipo

Page 57: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Vetores

• Para criar um vetor que armazene N elementos de um certo tipo (identificado por tipoDoVetor), utiliza-se a seguinte forma:

tipoDoVetor[] nomeDoVetor = new tipoDoVetor[N]

Page 58: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Vetores - Exemplo

• Criação de um vetor com a nota de prova de cada aluno da turma

int numAlunos=30;

double[] notas = new notas[numAlunos];

Page 59: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Vetores

• Para acessar cada elemento do array, usa-se colchetes:

// coloca na posição 3 do vetor a nota 7.9

notas[3]=7.9;

// atribui a nota da posição 0 do vetor

double nota = notas[0];

Page 60: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Vetores

• Observe que o primeiro elemento do array é o elemento 0

[0] primeiro elemento

[1] segundo elemento

...

[N-1] enésimo elemento

Page 61: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Criação e inicialização de um vetor

// Cria e inicializa um vetorstring[] nomeDePessoas = { “Antonio”,

“Jose”, “Joao”};

string[] nomeDePessoas = new String[] { “Antonio”, “Jose”, “Joao”};

Obs: o compilador determina qual deverá ser o tamanho do vetor

Page 62: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Matrizes Multidimensionais

• São matrizes com mais de uma dimensão (duas, três, quatro, ...)

Exemplo:

Uma matriz bidimensional de 2 linhas por 3 colunas (2x3)

int[,] matriz = new [2,3];

Page 63: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Acesso de elementos

• matriz[1,2]=35;

• int valor = matriz[1,2];

Page 64: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Exemplo - Matriz com três dimensões

double[,,] matriz3D = new double[10,10,10];

matriz3D[0,0,1]=1.0;

matriz3D[0,1,0]=0.65;

...

Page 65: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Inicialização de Matrizes

// inicializa uma matriz bidimensional (2 x 3), isto é, duas linhas e três coluna

int[,] matriz = {

{1,2,3},

{4,5,6}

};

Page 66: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Inicialização de Matrizes

// inicializa uma matriz bidimensional (3 x 2), isto é, três linhas e duas coluna

int[,] matriz = {

{1,2},

{3,4},

{5,6}

};

Page 67: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Alguns métodos da matrizes

• matriz.Length obtém o número de elementos da matriz

• matriz.Rank obtém o número de dimensões da matriz

• matriz.GetLength(dim) obtém o número de elementos da dimensão dim

Page 68: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Soma de Matrizes

int[,] matrizA = { {1,2,3}, {4,5,6} };

int[,] matrizB = { {4,-1,2}, {-3,-7,-6} };

int[,] matrizC = new int[2,3];

// C = A + B

Page 69: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Multiplicação de Matrizes

int[,] matrizA = { {1,2}, {4,5} };int[,] matrizB = { {4,-1}, {-3,-7} };int[,] matrizC = new int[2,2];// C = A x BCondições:- o número de colunas da matriz A deverá ser

igual ao número de linhas da matriz B- a matriz resultante, C, terá a dimensão dada pelo

número de linhas da matriz A e o número de colunas da matriz B

Page 70: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Multiplicação de Matrizes

Cada elemento c[i,j] será dado pela multiplicação dos elemento da linha i multiplicados pelos elementos da linha j

c[i,j] += a[i,k] * b[k,j]

onde k varia de 0 a número de linhas da matriz A ou número de colunas da matriz B, que são iguais

Page 71: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Criando um método para exibir uma matriz

Page 72: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Backup - Slides

Page 73: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Palavras chave da Linguagem C#

abstract as base bool break

byte case catch char checked

class const continue decimal default

delegate do double else enum

event explict extern false finally

Page 74: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Palavras chave da Linguagem C# (2)

fixed float for foreach get

goto if implict in int

interface internal is lock long

namespace

new null object operator

out override params private protected

Page 75: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Palavras chave da Linguagem C# (3)

public readonly ref return sbyte

sealed set short sizeof stackalloc

static string struct switch this

throw true try typeof uint

ulong unchecked

unsafe ushort using

Page 76: Linguagem C# Versão – 090528 Prof.: Mauro César Lopes

Palavras chave da Linguagem C# (4)

value virtual void volatile while