Jump to content
Fórum Script Brasil
  • 0

Erro na compilação


Diego RLS
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...