NET
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;
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
Cast
double A = 107,25368 int B; B = (int)(A); // B = 107
Converso de Valores
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#
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#
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#
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
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:
Programao em C#
15
Arrays
Programao em C#
16
Arrays
Programao em C#
17
Arrays
Programao em C#
18
Arrays
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
Programao em C#
21
Arrays Multidimensionais
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