Você está na página 1de 35

Programao em C# com Visual Studio .

NET

Prof. Eder Samaniego Villalba

Converso de Valores

Converter um tipo de dado em um nmero ou litera comum em situaes de programao. Os casos mais tpicos so as converses de valores contidos em TextBoxes, a propriedade text s permite strings. Possui converses implcitas e explcitas.

Programao em C#

Converso de Valores

Exemplo:
double x = 10; int y = 10; x = y; y = x;

X = Y uma converso implcita. O C# cuida da converso sem necessidade de interveno do programador.

Programao em C#

Converso de Valores

Y = X no pode ser feita implicatamente. O espao reservado em memria para um double maior do que para um inteiro. Converses implcitas permitem comparaes e operaes diretas.
if (x == y) MessageBox.Show(Iguais);

Programao em C#

Converso de Valores

ToString()
string s; s = x.ToString(); // ou s = Convert.ToString(x); s = y.ToString(); // ou s = Convert.ToString(x);

ToInt
short sh; int y; long lo; double x; sh = Convert.ToInt16(x); y = Convert.ToInt32(x); lo = Convert.ToInt64(x);

Programao em C#

Converso de Valores

Quando convertemos um double para int o C# ignora as casa decimais.


double A = 107,25368 int B; B = Convert.ToInt32(A); // B = 107

Cast
double A = 107,25368 int B; B = (int)(A); // B = 107

Os 2 funcionam, porm o cast mais barato para o compilador, melhor performance.


Programao em C#

Converso de Valores

Converso do tipo Cast:

Coloca-se o tipo de destino da converso entre

parnteses antecedendo o valor a ser convertido na frente da atribuio. Na maioria das tentativas de converses sem declarao cast o Visual gera um errro em tempo de compilao. O ambiente runtime no executa converses invlidas. Portanto, cuidado ao utilizar cast para no criar uma aplicao instvel.
Programao em C#

Funes de Converses de Tipo



So mais resistentes a erros que casts. So mtodos estticos e esto presentes na classe System.Convert.
ToBoolean converte um valor para boolean. ToByte converte um valor para um inteiro sem sinal de 8 bits ToChar converte um valor para um caracter Unicode. ToDateTime converte um valor para um DateTime. ToDecimal converte um valor para Decimal

Programao em C#

Funes de Converses de Tipo

ToDouble converte um valor para ponto flutuante com preciso Double. ToInt16 converte um valor para inteiro com sinal de 16 bits (compatvel com short). ToInt32 converte um valor para um inteiro com sinal de 32 bits (compatvel com int). ToInt64 converte um valor para um inteiro com sinal de 64 bits (compatvel com long). ToSingle converte um valor para um ponto flutuante com preciso single (compatvel com float).

Programao em C#

Funes de Converses de Tipo


ToString converte um valor para uma string. ToUInt16 converte um valor para um inteiro sem sinal de 16 bits (compatvel com ushort). ToUInt32 converte um valor para um inteiro sem sinal de 32 bits (compatvel com uint). ToUInt64 converte um valor para um inteiro sem sinal de 64 bits (compatvel com ulong).

Programao em C#

10

Arrays

Seqncia no ordenada de elementos do mesmo tipo. Os elementos de um array residem em um bloco contguo da memria e so acessados por meio de um ndice inteiro. Para se declarar um array, use um []. O tamanho do array definido pelo programador.
Programao em C#

11

Arrays

O primeiro ndice 0.
stack
int[] pins; int[] pins; ? heap

pins = new int[4]

int[] pins; @

Programao em C#

12

Arrays
string[] arrayA = {homem, lgico, sapiens}; string[] arrayB = new string[3]; // Array de string com 3 posies arrayB[0] = sapiens; arrayB[1] = lgico; arrayB[2] = homem; for(int i = 0; i < 3; i++) { Console.WriteLine({0}\t\t:{1}, arrayA[index].ToString(), arrayB[index].ToString()); }

Programao em C#

13

Arrays

Crie um projeto Windows Application. Chame-o de ArrayStoreApp. O objetivo armazenar em um array se os checkboxes de um groupbox esto ou no marcados. Aps clicar em um boto salvar, o estado dos checkboxes deve ser armazenado no array. Existe ainda um boto limpar, que ir desmarcar todos os checkboxes do group.
Programao em C#

14

Arrays

O ltimo boto mostrar, dever remarcar os checkboxes conforme anteriormente. Use um array boolean para armazenar o estado dos checkboxes. A ordem do exerccio deve ser:

Marcar checkboxes Salvar Limpar Mostrar

Programao em C#

15

Arrays

Programao em C#

16

Arrays

Programao em C#

17

Arrays

Programao em C#

18

Arrays

Copiar arrays uma tarefa comumente usada em programas.


int[] pins = {1, 2, 3} int[] copy = new int[pins.Length]; for (int i = 0; i < pins.Length; i++) { copy[i] = pins[i]; }

Programao em C#

19

Arrays

A classe System.Array fornece alguns mtodos teis que podem ser usados para copiar arrays.
int[] pins = {1, 2, 3} int[] copy = new int[pins.Length]; pins.CopyTo(copy, 0); Posio para iniciar a cpia no destino
Array destino

Programao em C#

20

Arrays
int[] pins = {1, 2, 3} int[] copy = new int[pins.Length]; Array.Copy(pins, copy, copy.Length);
Array destino Array Origem

Tamanho da cpia

int[] pins = {1, 2, 3} int[] copy = (int[]) pins.Clone();

Programao em C#

21

Arrays Multidimensionais

Representam uma matriz de dados.


string[,] matriz = new string[3,2]; matriz[0,0] = leao; matriz[0,1] = leoa; matriz[1,0] = gato; matriz[1,1] = gata; matriz[2,0] = homem; matriz[2,1] = mulher;

Programao em C#

22

Arrays Multidimensionais

Para percorrer toda a matriz necessrio um encadeamento de loops. O nmero de loops encadeado igual ao nmero de dimenses da matriz.
for(int i=0; i < 3; i++) for(int j=0; i < 2; j++) Console.WriteLine(matriz[i,j]);

Programao em C#

23

Arrays Multidimensionais
int[] a1 = new int[] {1, 2, 3}; // array de uma dimenso int[,] a2 = new int[,] {{1, 2, 3}, {4, 5, 6}}; // array de duas dimenses int[,,] a3 = new int[10, 20, 30] ;// array de trs dimenses int[][] d1 = new int[3][]; // array dentado array de array cada linha pode ter um tamanho d1[0] = new int[] {1, 2, 3}; d1[1] = new int[] {1, 2, 3, 4, 5, 6}; d1[2] = new int[] {1, 2, 3, 4}; int[][][] d2; //array de array de array

A faixa dos arrays verificada em tempo de execuo. Se voc indexar o array com um valor fora da faixa, uma exceo gerada.
Programao em C#

24

Arrays de Estruturas

Utilize o exerccio anterior de struct para guardar 3 entradas de cadastro ao invs de apenas 1. Insira 2 novos botes para que o usurio possa navegar pelos registros cadastrados. Estes botes somente aparecem aps o clique no boto Mostrar, que sempre mostra o registro na posio 0. Lance a exceo IndexOutOfBounds se o usurio tentar cadastrar mais de 3 pessoas.

Programao em C#

25

Arrays de Estruturas

Programao em C#

26

Arrays Multidimensionais

Programao em C#

27

Arrays Multidimensionais

Programao em C#

28

Arrays Multidimensionais

Programao em C#

29

Arrays Multidimensionais

Programao em C#

30

Arrays Multidimensionais

Programao em C#

31

Arrays de Estruturas

Para deixar o programa mais robusto falta a incluso de excees. Por exemplo, nosso array s tem 3 posies, no podemos deixar o usurio tentar salvar a quarta pessoa. Outro erro possvel a edio da comboBox ou a passagem de um valor em branco. Para este caso podemos ou inserir excees ou acertar as propriedades da comboBox.

Programao em C#

32

Arrays de Estruturas

Programao em C#

33

Arrays de Estruturas

Programao em C#

34

Arrays de Estruturas

Programao em C#

35