cmtavares Posted January 22, 2017 at 03:32 PM Report Share #602121 Posted January 22, 2017 at 03:32 PM Boa tarde estoua iniciar um projecto para a faculdade e deparei me com este erro e ano consigo entender o porque alguém me consegue ajudar? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace estruturas { class Program { static void Main(string[] args) { string nomecliente; pessoa [] grupo = new pessoa [5]; grupo[0] = new pessoa {"14245462","carlos","23"}; //-------> zona em que me está a dar erro //o erro que aparece é: //Error 1 Cannot initialize type 'estruturas.Program.pessoa' with a collection initializer because it does not implement 'System.Collections.IEnumerable' cliente [] grupocliente = new cliente[5]; Console.WriteLine("Insira o nome do cliente:\n"); nomecliente = Convert.ToString(Console.ReadLine()); } struct pessoa // define estrutura de dados referente a cada pessoa { string NOME; string BI; int IDADE; public pessoa(string nome, string bi, int idade)//construtor da estrutura pessoa { BI = bi; NOME = nome; IDADE = idade; } public string devolvepoessoa() // netodo para mostra cada pessoa { return("BI:" + BI + ", Nome:" + NOME + ", Idade:" + IDADE); } public string devolveBI() { return(BI); } } struct cliente { string NomeCLIENTE; string BI; int IDADE; int TipoCLIENTE; int NumemoCLIENTE; public cliente(string nomecliente, string bicliente, int idadecliente, int tipo, int numerocliente) { NomeCLIENTE = nomecliente; BI = bicliente; IDADE = idadecliente; TipoCLIENTE = tipo; NumemoCLIENTE = numerocliente; } public string devolvecliente() { return("Nome:" + NomeCLIENTE + "\nBI:" + BI + "\nIdade:" + IDADE + "\nTipo Cliente:" + TipoCLIENTE + "\nNumero Cliente:" + NumemoCLIENTE); } public string nomeCliente() { return NomeCLIENTE; } public string BIcliente() { return BI; } } } } Link to comment Share on other sites More sharing options...
ribeiro55 Posted January 22, 2017 at 10:35 PM Report Share #602130 Posted January 22, 2017 at 10:35 PM Olá cmtavares. As chavetas são usadas nas inicializações para indicar uma lista de algo. Mais especificamente, algo que implemente o interface IEnumerable. Não é o caso da tua struct. Podem também ser usadas para inicializar a classe/struct com alguns dos seus membros, mas não é o caso. Para deixares de ter o erro, basta que uses o construtor de forma normal, já que estás a indicar explicitamente em que posição do array vais colocar a pessoa. grupo[0] = new pessoa( "14245462", "carlos", 23); Podias também, se quisesses, inicializar o array sem especificares o tamanho, assim: pessoa[] grupo = new pessoa[] { new pessoa( "14245462", "carlos", 23), new pessoa( "23434234", "maria", 33), new pessoa( "46546456", "chico", 43), new pessoa( "57567657", "fininho", 33), new pessoa( "67876876", "vitinho", 76) }; Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
cmtavares Posted January 23, 2017 at 01:35 PM Author Report Share #602136 Posted January 23, 2017 at 01:35 PM Obrigado pela sua resposta sergio Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now