Usuário com melhor resposta
Problemas no Código..

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.
- Editado Gabriel Bernardone quarta-feira, 27 de maio de 2015 04:51
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.
- Sugerido como Resposta Mr. GMSOFT quarta-feira, 27 de maio de 2015 11:20
- Marcado como Resposta Levi DomingosModerator quarta-feira, 27 de maio de 2015 14:27
-
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(); } } }
- Editado Supimpa quarta-feira, 27 de maio de 2015 12:41
- Marcado como Resposta Levi DomingosModerator quarta-feira, 27 de maio de 2015 14:27
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.
- Sugerido como Resposta Mr. GMSOFT quarta-feira, 27 de maio de 2015 11:20
- Marcado como Resposta Levi DomingosModerator quarta-feira, 27 de maio de 2015 14:27
-
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(); } } }
- Editado Supimpa quarta-feira, 27 de maio de 2015 12:41
- Marcado como Resposta Levi DomingosModerator quarta-feira, 27 de maio de 2015 14:27