none
Problemas no Código.. RRS feed

  • Pergunta

  • Galera, blz?

    Estou com um problema.. quem esta fazendo o curso sabe que foi pedido para criar uma classe Cliente com os seguintes atributos

    public String Nome { get; set; }
    public String Cpf { get; set; }
    public String Rg { get; set; }
    public String Endereco { get; set; }
    public byte Idade { get; set; }

    E na Classe conta chamar a classe clientes como

    public Clientes Titular {get;set;}

    O problema é que ao instanciar a Classe Conta e definir um titular como

    Conta  novaConta = new Conta();
    conta.Titular = "Gabriel";

    Aparece o erro 

    Cannot implicity convert type 'string' to 'WindowsFormsApplication5.Cliente'

    Detalhe é que se eu chamar como

    conta.Titular.Nome  = "Gabriel";

    Aparece o erro ao compilar

    Referência de objeto não definida para uma instância de um objeto.

    quarta-feira, 27 de maio de 2015 04:50

Respostas

  • Gabriel, você precisa instanciar o objeto Titulo. Ficaria assim:

    Conta novaConta = new Conta();
    conta.Titular = new Cliente();
    conta.Titular.Nome = "nome completo";

    Titular, por ser do tipo Cliente, você precisa instanciar a classe Cliente pra trabalhar com os atributos dela.

    quarta-feira, 27 de maio de 2015 11:06
  • Gabriel, a forma abaixo como você está tentando não funciona.

    A propriedade Titular recebe apenas variáveis do tipo Cliente, ou seja, um variável com todas as propriedades da classe cliente. A forma abaixo está passando um valor do tipo string.

    Conta  novaConta = new Conta();
    conta.Titular = "Gabriel";

    Por isso o erro: 

    Cannot implicity convert type 'string' to 'WindowsFormsApplication5.Cliente'

    Segue código completo de exemplo:

    using System;
    
    namespace Banco
    {
    public class Cliente{
    public string Nome {get; set;}
    public string Cpf {get; set;}
    public string Rg {get; set;}
    public string Endereco {get; set;}
    public byte Idade {get; set;}
    }
    
    public class Conta
    {
    
    public  Cliente Titular {get; set}
    }
    
    class App
    {
    static void Main(string[] args)
    {
    Cliente cli = new Cliente();
    cli.Nome = "Carlos";
    cli.Cpf = "787974654654";
    cli.Rg = "452545454";
    cli.Endereco = "rua krovis";
    cli.Idade = 1;
    
    Conta novaconta = new Conta();
    
    //Desta forma a propriedade Titular está recebendo um objeto do Tipo Cliente
    novaconta.Titular = cli;
    
    Console.WriteLine("Nome: {0} / CPF: {1}", novaconta.Titular.Nome, novaconta.Titular.CPF);
    Console.ReadLine();
    }
    
    }
    
    }


    quarta-feira, 27 de maio de 2015 12:40

Todas as Respostas

  • Gabriel, você precisa instanciar o objeto Titulo. Ficaria assim:

    Conta novaConta = new Conta();
    conta.Titular = new Cliente();
    conta.Titular.Nome = "nome completo";

    Titular, por ser do tipo Cliente, você precisa instanciar a classe Cliente pra trabalhar com os atributos dela.

    quarta-feira, 27 de maio de 2015 11:06
  • Gabriel, a forma abaixo como você está tentando não funciona.

    A propriedade Titular recebe apenas variáveis do tipo Cliente, ou seja, um variável com todas as propriedades da classe cliente. A forma abaixo está passando um valor do tipo string.

    Conta  novaConta = new Conta();
    conta.Titular = "Gabriel";

    Por isso o erro: 

    Cannot implicity convert type 'string' to 'WindowsFormsApplication5.Cliente'

    Segue código completo de exemplo:

    using System;
    
    namespace Banco
    {
    public class Cliente{
    public string Nome {get; set;}
    public string Cpf {get; set;}
    public string Rg {get; set;}
    public string Endereco {get; set;}
    public byte Idade {get; set;}
    }
    
    public class Conta
    {
    
    public  Cliente Titular {get; set}
    }
    
    class App
    {
    static void Main(string[] args)
    {
    Cliente cli = new Cliente();
    cli.Nome = "Carlos";
    cli.Cpf = "787974654654";
    cli.Rg = "452545454";
    cli.Endereco = "rua krovis";
    cli.Idade = 1;
    
    Conta novaconta = new Conta();
    
    //Desta forma a propriedade Titular está recebendo um objeto do Tipo Cliente
    novaconta.Titular = cli;
    
    Console.WriteLine("Nome: {0} / CPF: {1}", novaconta.Titular.Nome, novaconta.Titular.CPF);
    Console.ReadLine();
    }
    
    }
    
    }


    quarta-feira, 27 de maio de 2015 12:40