Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na compilação


Diego RLS

Pergunta

Estou fazendo um curso de C# na Fundação Bradesco e estava seguindo um exemplo pratico pedido o problema é que no meu código está dando um erro que desconheço, é um programa de contatos com 3 opções "Incluir Novo Contato", "Listar Contatos", "Sair". Vou deixar uns print de como é pra ficar, o meu código e o erro quem poder ajudar agradeço.

ERRO: 'ConsoleApplication6.Program.Main(string[])' must declare a body because it is not marked abstract, extern, or partial

OBS: Fiquei em duvida de onde postar e achei que aqui seria mais adequado.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication6
{
class Program
    {
       static void Main(string[] args);
    }

//Implementação da classe contato
class Contato
    {

        private int id;
        private string nome;
        private string telefone;
        private string email;

        public int ID
        {
            get { return id; }
            set { id = value; }
        }

        public string Nome
        {
            get { return nome; }
            set { nome = value; }
        }

        public string Telefone
        {
            get { return telefone; }
            set { telefone = value; }
        }

        public string Email
        {
            get { return email; }
            set { email = value; }
        }

        public string myProperty
        {
            //Quando o valor atribuido for vazio,
            //o valor padrão considerado será null
            set
            {
                if (value == string.Empty)
                    variavel = null;
                else
                {
                    variavel = value;
                }
            }
        }

//Metodo que cria menu na interface do usuario
static void CriaMenu()
        {
            ConsoleKey key;
            bool opcao;

            opcao = true;
            while (opcao)
            {
                //Limpar a Tela
                Console.Clear();

                Console.WriteLine("___CONTATOS___");
                Console.WriteLine("Escolha as opções abaixo:");
                Console.WriteLine("1 - Incluir");
                Console.WriteLine("2 - Listar");
                Console.WriteLine("S - Sair");
                Console.WriteLine("Opção: ");

                key = Console.ReadKey().Key;
                switch (key)
                {
                    case ConsoleKey.NumPad1:
                        Program.AddContato();
                        break;
                    case ConsoleKey.NumPad2:
                        Program.ListContato();
                        break;
                    case ConsoleKey.S:
                        opcao = false;
                        break;
                }
            }
        }

//Metodo para incluir um contato no arquivo
static void AddContato()
        {
            Contato contato = new Contato();
            try
            {
                Console.Clear();
                Console.WriteLine("Preencha os dados abaixo:");
                Console.Write("ID: ");
                contato.ID = Convert.ToInt32(Console.ReadLine());
                Console.Write("Nome: ");
                contato.Nome = Convert.ToInt32(Console.ReadLine());
                Console.Write("Telefone: ");
                contato.Telefone = Convert.ToInt32(Console.ReadLine());
                Console.Write("E-Mail: ");
                contato.Email = Convert.ToInt32(Console.ReadLine());
                Program.SaveContato(contato);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


//Metodo para salvar um arquivo no contato
//Arquivo a ser salvo
static void SaveContato(Contato contato)
        {
            FileStream fs;
            byte[] byteArray;
            string strContato;

            try
            {
                fs = new FileStream(CONST_PATH_ARQUIVO_DADOS, FileMode.Append, FileAccess.Write);

                if (fs.CanWrite)
                {
                    //Cria uma linha com atributos separados por TAB
                    strContato = Program.ParseContato(c);

                    //Para salvar o registro no arquivo utilizando a classe
                    //FileStream, será necessário utilizar uma classe para
                    //converter o texto em bytes.
                    byteArray = Encoding.ASCII.GetBytes(strContato);

                    fs.Write(byteArray, 0, byteArray.Length);
                    fs.Close();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

//Metodo para listar os contatos existentes
static void ListContato()
        {
            StreamReader sr;
            try
            {
                sr = new StreamReader(CONST_PATH_ARQUIVO_DADOS);
                if (sr.BaseStream.CanRead)
                {
                    Console.WriteLine();
                    while (!sr.EndOfStream)
                    {
                        Console.WriteLine(sr.ReadLine());
                    }
                }
                sr.Close();
                Program.wait();
            }
            catch (Exception ex)
            {
                Program.errorMessage(ex);
            }
        }

//Metodo para escrever os atributos do contto como uma linha para o arquivo, separa como tab.
//Contato a ser transformado
//String com os dados do contato
static string ParseContato(Contato c)
        {
            //Objeto para trabalhar com a concatenação de texto
            StringBuilder strBuilder;

            try
            {
                strBuilder = new StringBuilder();

                //Separar todos os atributos com TAB, representado pelo caracter \t
                strBuilder.Append(c.ID);
                strBuilder.Append('\t');
                strBuilder.Append(c.Nome);
                strBuilder.Append('t');
                strBuilder.Append(c.Telefone);
                strBuilder.Append('\t');
                strBuilder.Append(c.Email);

                //Toda linha de um arquivo para o .Net é encerrada pelo caracter \r
                strBuilder.Append("\r\n");

                return strBuilder.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
    }
}

 

2.png

1.png

3.png

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Você deveria ter postado no fórum de .NET, já que trata-se de um problema com C#. De qualquer maneira, o erro que você está recebendo é porque a rotina Main() não tem nada para executar. Acredito que ela deveria chamar a rotina CriaMenu() então você deveria trocar...

class Program
    {
       static void Main(string[] args);
    }

... por:

class Program
    {
       static void Main(string[] args)
       {
           CriaMenu();
       }
    }

 

Certo?

Abraços!

 

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu pela e se algum moderador poder mover o tópico de boa.

Voltando ao problema...

Ao deixar desse jeito o erro some, mas aparece dois novos

ERRO 1: Invalid token '{' in class, struct, or interface member declaration

ERRO 2: Method must have a return type

class Program
    {
       static void Main(string[] args)
       {
           CriaMenu();
       }
    }

Testei também da seguinte forma, e nesse caso só aparece um erro

ERRO: Method must have a return type

class Program
    {
       static void Main(string[] args);
         
            CriaMenu();
        }       
    }

 

Link para o comentário
Compartilhar em outros sites

  • 0

O problema no seu código é que você provavelmente esqueceu de fechar as chaves (}) após a classe Contato e os todos os métodos estão dentro dela, ao invés de estarem na classe Program. Veja abaixo como seria:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            CriaMenu();
        }

        //Implementação da classe contato
        class Contato
        {

            private int id;
            private string nome;
            private string telefone;
            private string email;

            public int ID
            {
                get { return id; }
                set { id = value; }
            }

            public string Nome
            {
                get { return nome; }
                set { nome = value; }
            }

            public string Telefone
            {
                get { return telefone; }
                set { telefone = value; }
            }

            public string Email
            {
                get { return email; }
                set { email = value; }
            }

            public string myProperty
            {
                //Quando o valor atribuido for vazio,
                //o valor padrão considerado será null
                set
                {
                    if (value == string.Empty)
                        variavel = null;
                    else
                    {
                        variavel = value;
                    }
                }
            }
        } // Aqui acaba a classe Contato
      
        //Metodo que cria menu na interface do usuario
        static void CriaMenu()
        {
            ConsoleKey key;
            bool opcao;

            opcao = true;
            while (opcao)
            {
                //Limpar a Tela
                Console.Clear();

                Console.WriteLine("___CONTATOS___");
                Console.WriteLine("Escolha as opções abaixo:");
                Console.WriteLine("1 - Incluir");
                Console.WriteLine("2 - Listar");
                Console.WriteLine("S - Sair");
                Console.WriteLine("Opção: ");

                key = Console.ReadKey().Key;
                switch (key)
                {
                    case ConsoleKey.NumPad1:
                        Program.AddContato();
                        break;
                    case ConsoleKey.NumPad2:
                        Program.ListContato();
                        break;
                    case ConsoleKey.S:
                        opcao = false;
                        break;
                }
            }
        }

        //Metodo para incluir um contato no arquivo
        static void AddContato()
        {
            Contato contato = new Contato();
            try
            {
                Console.Clear();
                Console.WriteLine("Preencha os dados abaixo:");
                Console.Write("ID: ");
                contato.ID = Convert.ToInt32(Console.ReadLine());
                Console.Write("Nome: ");
                contato.Nome = Convert.ToInt32(Console.ReadLine());
                Console.Write("Telefone: ");
                contato.Telefone = Convert.ToInt32(Console.ReadLine());
                Console.Write("E-Mail: ");
                contato.Email = Convert.ToInt32(Console.ReadLine());
                Program.SaveContato(contato);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }


        //Metodo para salvar um arquivo no contato
        //Arquivo a ser salvo
        static void SaveContato(Contato contato)
        {
            FileStream fs;
            byte[] byteArray;
            string strContato;

            try
            {
                fs = new FileStream(CONST_PATH_ARQUIVO_DADOS, FileMode.Append, FileAccess.Write);

                if (fs.CanWrite)
                {
                    //Cria uma linha com atributos separados por TAB
                    strContato = Program.ParseContato(c);

                    //Para salvar o registro no arquivo utilizando a classe
                    //FileStream, será necessário utilizar uma classe para
                    //converter o texto em bytes.
                    byteArray = Encoding.ASCII.GetBytes(strContato);

                    fs.Write(byteArray, 0, byteArray.Length);
                    fs.Close();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //Metodo para listar os contatos existentes
        static void ListContato()
        {
            StreamReader sr;
            try
            {
                sr = new StreamReader(CONST_PATH_ARQUIVO_DADOS);
                if (sr.BaseStream.CanRead)
                {
                    Console.WriteLine();
                    while (!sr.EndOfStream)
                    {
                        Console.WriteLine(sr.ReadLine());
                    }
                }
                sr.Close();
                Program.wait();
            }
            catch (Exception ex)
            {
                Program.errorMessage(ex);
            }
        }

        //Metodo para escrever os atributos do contto como uma linha para o arquivo, separa como tab.
        //Contato a ser transformado
        //String com os dados do contato
        static string ParseContato(Contato c)
        {
            //Objeto para trabalhar com a concatenação de texto
            StringBuilder strBuilder;

            try
            {
                strBuilder = new StringBuilder();

                //Separar todos os atributos com TAB, representado pelo caracter \t
                strBuilder.Append(c.ID);
                strBuilder.Append('\t');
                strBuilder.Append(c.Nome);
                strBuilder.Append('t');
                strBuilder.Append(c.Telefone);
                strBuilder.Append('\t');
                strBuilder.Append(c.Email);

                //Toda linha de um arquivo para o .Net é encerrada pelo caracter \r
                strBuilder.Append("\r\n");

                return strBuilder.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }
    }
}

Fora isso, tem outros erros que você vai ver no código quando tiver corrigido isso.

Abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...