Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Função do desafio e uma pequena dúvida no fim

A solução do desafio:

void MediaDaBanda()
{
    Console.Clear();
    ExibirTituloDaOpcao("Verifique a média de uma banda!");
    Console.Write("Digite o nome da banda que quer verificar a média: ");
    string nomeDaBanda = Console.ReadLine()!;
    if (bandasRegistradas.ContainsKey(nomeDaBanda))
    {
        List<int> notas = bandasRegistradas[nomeDaBanda];
        if (notas.Count > 0)
        {
            double media = notas.Average();
            Console.WriteLine($"A média da {nomeDaBanda} é:{media:F2}");
        }
        else
        {
            Console.WriteLine($"\nBanda {nomeDaBanda} não encontrada ou sem notas registradas!");
        }
        Console.WriteLine("Digite uma tecla para voltar ao menu principal");
        Console.ReadKey();
        Console.Clear();
        ExibirOpcoesDoMenu();
    }
}

Enquanto eu pesquisava sobre como fazer média e afins eu vi muitos códigos de C# iniciando com o método Main, vi mais sobre e descobri que nas versões mais atuais temos "top-level statements", que pula a etapa de criar uma class program e um static Void Main, mas isso será importante na vida em algum momento? Teremos que usar ou hoje em dia já é algo mais defasado? Além disso, consegue me explicar mais ou menos a funcionalidade crua da Class Program e static void Main()?

1 resposta
solução!

O que é a class Program e o static void Main()? Antes do C# 9.0, todo programa em C# precisava começar com uma estrutura básica, que incluía:

  • Uma classe (geralmente chamada de Program).

  • Um método chamado Main, que é o ponto de entrada do programa (ou seja, é onde o programa começa a ser executado).

Exemplo clássico:

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Olá, mundo!");
    }
}

class Program: Define uma classe chamada Program. Em C#, todo código precisa estar dentro de uma classe.

static void Main(string[] args): Este é o método principal do programa. Ele é estático (static), não retorna valor (void), e pode receber argumentos da linha de comando (string[] args).

O que são "top-level statements"?

A partir do C# 9.0, a Microsoft introduziu os top-level statements, que permitem escrever código sem a necessidade de declarar explicitamente a classe Program e o método Main. Isso torna o código mais simples e direto, especialmente para programas pequenos ou scripts. **Exemplo com top-level statements:**
using System;

Console.WriteLine("Olá, mundo!");
Aqui, o compilador "entende" que esse código deve ser colocado dentro de um método Main automaticamente.

É uma forma de reduzir a verbosidade do código.

Isso é importante na vida real?

Depende do contexto:

  1. Para iniciantes ou scripts simples:

    • Os top-level statements são ótimos, pois permitem focar no código principal sem se preocupar com a estrutura básica.

    • É uma forma moderna e simplificada de escrever programas.

  2. Para projetos maiores ou profissionais:

    • A estrutura tradicional (class Program e static void Main) ainda é amplamente usada, especialmente em projetos maiores, onde a organização e a modularidade são importantes.

    • Além disso, entender a estrutura tradicional é fundamental para compreender como o C# funciona por baixo dos panos.

Quando devo usar um ou o outro?

  • Top-level statements:

    • Use para scripts rápidos, exemplos simples, ou quando estiver aprendendo.

    • Ideal para programas pequenos que não precisam de muita organização.

  • Estrutura tradicional (class Program e static void Main):

    • Use em projetos maiores, onde você precisa de mais controle e organização.

    • É essencial para entender como o C# funciona, especialmente se você for trabalhar com código legado ou em equipes que ainda usam versões mais antigas do C#.

Resumo Top-level statements são uma simplificação moderna do C# para programas pequenos. A estrutura tradicional (class Program e static void Main) ainda é relevante, especialmente em projetos maiores e para entender o funcionamento interno do C#. Ambas as abordagens têm seu lugar, e saber usar cada uma é útil dependendo do contexto. Se você está começando, pode usar os top-level statements para se familiarizar com a linguagem. Conforme for avançando, é importante entender a estrutura tradicional, pois ela ainda é muito usada no mundo real. Caso queira ver mais detalhes, tem essa resposta aqui

Espero ter ajudado. Abraços!