none
Como utilizar os dados armazenados dentro de um bloco "try", fora do bloco? RRS feed

  • Pergunta

  • Dentro de um bloco try, armazenei uma série de dados em uma array (c). Entretanto, não sei como fazer para acessar os dados inseridos neste array, de fora do bloco try. Esou começando a programar e, desde já, agradeço pela ajuda!! Segue o trecho código abaixo:

    namespace Banco
    {
        class Program
        {
            static void Main(string[] args)
            {

                    int i, n, tip = 0;
                    string t = null;
                    double s = 0;
                    try
                    {
                        do
                        {
                            Console.Write("Digite o número de contas que deseja inicializar: ");
                            i = Convert.ToInt32(Console.ReadLine());
                            if (i <= 0)
                            {
                                Console.WriteLine("Número de contas 'i' inválido!");
                            }
                        } while (i <= 0);
                        Conta[] c = new Conta[i];
                        for (int x = 0; x < i; x++)
                        {
                            Console.Write("Digite o número da conta: ");
                            n = Convert.ToInt32(Console.ReadLine());
                            Console.Write("Digite o nome do titular da conta: ");
                            t = Console.ReadLine();
                            Console.Write("Inicialize o saldo atual da conta: ");
                            s = Convert.ToDouble(Console.ReadLine());
                            Console.Write("Defina o tipo da conta (0 - C.C. | 1 - Poupança): ");
                            tip = Convert.ToInt32(Console.ReadLine());
                            c[x] = new Conta(n, t, s, tip);
                        }
                        Console.WriteLine("As contas inicializadas são:");
                        for (int x = 0; x < c.Length; x++)
                        {
                            Console.Write("Número: {0}, Titular: {1}, Saldo: R$ {2}, Tipo: {3};", c[x].numero, c[x].titular, c[x].saldo, c[x].tipo);
                            Console.WriteLine("");                        
                        }
                        //Conta[] copia = new Conta[c.Length];
                        //c.CopyTo(copia, 0);
                    }
                    catch (FormatException ex)
                    {                    
                        Console.WriteLine(ex.Message);
                    }
                    catch (OverflowException ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }             
                

    Console.Write("Digite o número da conta que deseja acessar: ");
                int origem = Convert.ToInt32(Console.ReadLine());
                do
                {
                    for (int x = 0; x < Conta.c.Lenght; x++) ;
                    // Aqui eu desejo acessar a posição na qual o número da conta foi gravado no array. 
                } while (origem!=c[x].numero);

           }  

        }

    }

    Dados da classe Conta:

    public class Conta
        {      
            public int numero { get; set; }
            public string titular { get; set; }
            public double saldo { get; set; }
            public int tipo { get; set; }
            public Conta (int Numero, string Titular, double Saldo, int Tipo)
            {
                this.numero = Numero;
                this.titular = Titular;
                this.saldo = Saldo;
                this.tipo = Tipo;
            }

    quinta-feira, 19 de janeiro de 2017 18:23

Respostas

  • Temos várias formas de fazer!

    Segue 1 exemplo:

                List<Conta> lConta = new List<Conta>();
                Conta conta;
    
                int i, n, tip = 0;
                string t = null;
                double s = 0;
                try
                {
                    do
                    {
                        Console.Write("Digite o número de contas que deseja inicializar: ");
                        i = Convert.ToInt32(Console.ReadLine());
                        if (i <= 0)
                        {
                            Console.WriteLine("Número de contas 'i' inválido!");
                        }
                    } while (i <= 0);
    
                    for (int x = 0; x < i; x++)
                    {
                        lConta = new List<Conta>();
                        Console.Write("Digite o número da conta: ");
                        n = Convert.ToInt32(Console.ReadLine());
                        Console.Write("Digite o nome do titular da conta: ");
                        t = Console.ReadLine();
                        Console.Write("Inicialize o saldo atual da conta: ");
                        s = Convert.ToDouble(Console.ReadLine());
                        Console.Write("Defina o tipo da conta (0 - C.C. | 1 - Poupança): ");
                        tip = Convert.ToInt32(Console.ReadLine());
                        
                        conta = new Conta(n, t, s, tip);
    
                        lConta.Add(conta);
    
                    }
                    Console.WriteLine("As contas inicializadas são:");
                    for (int x = 0; x < lConta.Count; x++)
                    {
                        Console.Write("Número: {0}, Titular: {1}, Saldo: R$ {2}, Tipo: {3};", lConta[x].numero, lConta[x].titular, lConta[x].saldo, lConta[x].tipo);
                        Console.WriteLine("");
                    }
                    //Conta[] copia = new Conta[c.Length];
                    //c.CopyTo(copia, 0);
                }
                catch (FormatException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (OverflowException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
    
    
                Console.Write("Digite o número da conta que deseja acessar: ");
                int origem = Convert.ToInt32(Console.ReadLine());
                foreach (var item in lConta)
                {
                    if (item.numero == origem)
    	            {
                        var dados = item;
    	            }
                }


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Joaquim Gusmão quinta-feira, 19 de janeiro de 2017 19:48
    quinta-feira, 19 de janeiro de 2017 19:07

Todas as Respostas

  • Olá Joaquim Gusmão

    Coloca o bloco de código inteiro para poder analisar!


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    quinta-feira, 19 de janeiro de 2017 18:25
  • Editei a pergunta, com o código inteiro!
    quinta-feira, 19 de janeiro de 2017 18:35
  • Temos várias formas de fazer!

    Segue 1 exemplo:

                List<Conta> lConta = new List<Conta>();
                Conta conta;
    
                int i, n, tip = 0;
                string t = null;
                double s = 0;
                try
                {
                    do
                    {
                        Console.Write("Digite o número de contas que deseja inicializar: ");
                        i = Convert.ToInt32(Console.ReadLine());
                        if (i <= 0)
                        {
                            Console.WriteLine("Número de contas 'i' inválido!");
                        }
                    } while (i <= 0);
    
                    for (int x = 0; x < i; x++)
                    {
                        lConta = new List<Conta>();
                        Console.Write("Digite o número da conta: ");
                        n = Convert.ToInt32(Console.ReadLine());
                        Console.Write("Digite o nome do titular da conta: ");
                        t = Console.ReadLine();
                        Console.Write("Inicialize o saldo atual da conta: ");
                        s = Convert.ToDouble(Console.ReadLine());
                        Console.Write("Defina o tipo da conta (0 - C.C. | 1 - Poupança): ");
                        tip = Convert.ToInt32(Console.ReadLine());
                        
                        conta = new Conta(n, t, s, tip);
    
                        lConta.Add(conta);
    
                    }
                    Console.WriteLine("As contas inicializadas são:");
                    for (int x = 0; x < lConta.Count; x++)
                    {
                        Console.Write("Número: {0}, Titular: {1}, Saldo: R$ {2}, Tipo: {3};", lConta[x].numero, lConta[x].titular, lConta[x].saldo, lConta[x].tipo);
                        Console.WriteLine("");
                    }
                    //Conta[] copia = new Conta[c.Length];
                    //c.CopyTo(copia, 0);
                }
                catch (FormatException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (OverflowException ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
    
    
                Console.Write("Digite o número da conta que deseja acessar: ");
                int origem = Convert.ToInt32(Console.ReadLine());
                foreach (var item in lConta)
                {
                    if (item.numero == origem)
    	            {
                        var dados = item;
    	            }
                }


    Se ajudei Vote como Útil, se resolvi seu problema clique em Marcar como Resposta.


    Daniel Ribeiro Arrais
    Consultor Sênior
    Site: www.danielarrais.com.br
    Linkedin: http://www.linkedin.com/in/danielarrais
    E-mail: arraishapkido@gmail.com
    Skype: dani.arrais

    • Marcado como Resposta Joaquim Gusmão quinta-feira, 19 de janeiro de 2017 19:48
    quinta-feira, 19 de janeiro de 2017 19:07