Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Ambiente para realização dos Desafios.

Olá, tudo bem?

Gostaria de um caminho para realizar os desafios propostos pelo curso. Estudei brevemente Java e estava habituado a criar Pastas e dentro delas classes representando os desafios de cada tópico dos curso. No entanto, com o C# parece ser diferente, ao tentar fazer esse mesmo processo sempre me deparo com o Erro CS8804. O erro acontece pois eu acesso as propriedades do projeto e altero o Objeto de Inicialização para a respectiva classe do desafio que eu quero "rodar". Segue abaixo como exemplo uma classe criada para dar inicio aos desafios propostos na aula 08 de Tipos e Funções no C#.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PrimeiroProjeto.Desafios {
    internal class DesafiosTiposFuncoes {
        public static void Main(string[] args) {
            int notaMedia;

            Console.Write("Digite a nota média: ");
            notaMedia = int.Parse(Console.ReadLine());

            if (notaMedia >= 5) {
                Console.WriteLine("Nota suficiente para aprovação");
            }
        }
    }
}

Ao rodar o código acima, após inserir o método Main e alterar o Objeto de Inicialização, o erro 8804 acontece. Obs: O arquivo Program.cs não possui o método Main, o código segue semelhante ao apresentado na aula.

2 respostas
solução!

Olá, Arthur! Tudo bem?

Esse erro geralmente ocorre quando há problemas ao definir o ponto de entrada do programa, ou seja, o método Main.

No C#, é importante que o método Main esteja corretamente configurado como ponto de entrada do projeto. Aqui estão algumas dicas para resolver esse problema:

  1. Verifique se o arquivo Program.cs possui um método Main. Se você deseja que outra classe seja executada, como no seu exemplo, é preciso garantir que o método Main dessa classe seja reconhecido como o ponto de entrada.

  2. Configuração do projeto: Ao invés de alterar o "Objeto de Inicialização" nas propriedades do projeto, você pode definir a classe que contém o método Main diretamente no arquivo de projeto (.csproj). Adicione a seguinte linha dentro do nó <PropertyGroup>:

    <StartupObject>PrimeiroProjeto.Desafios.DesafiosTiposFuncoes</StartupObject>
    

    Isso informa ao compilador qual classe deve ser usada como ponto de entrada.

  3. Estrutura do projeto: Mantenha uma estrutura de pastas organizada, mas lembre-se de que o C# espera que o ponto de entrada esteja bem definido. Você pode criar pastas para cada desafio e, dentro de cada uma, ter um arquivo com o método Main. Apenas certifique-se de que o arquivo de projeto esteja apontando para o método Main correto.

  4. Exemplo de ajuste: No exemplo que você forneceu, a classe DesafiosTiposFuncoes já possui um método Main. Certifique-se de que o projeto está configurado para usar essa classe como ponto de entrada, conforme o passo 2.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Olá Renan, estou bem. Obrigado por perguntar!

Agradeço pela explicação e a solução para o problema. Acabei optando por criar um novo projeto para a respectiva formação que estou estudando no momento (Formação Aprenda a programar em C# com Orientação a Objetos) e dentro dela criei pastas para cada curso que contém na formação. E dentro dessas pastas estou criando diferentes classes para os desafios que surgirem a cada tópico. Deixo aqui essa alternativa para quem estiver com uma dúvida semelhante. Para isso deixei o "Program.cs" vazio e altero o Objeto de Inicialização para a respectiva classe que eu queira "rodar" no momento. A alteração mencionada dentro do projeto ( .csproj ) também vai ter a mesma função.

Novamente, obrigado!