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

Autenticação de usuário

Eu pensei que a atividade era um pouco mais complexa, então acabei criando um tipo de sistema simples de cadastro, utilizando uma lista de usuários.

bool sair = false;
List<string> usuarios = new List<string>();
usuarios.Add("Admin");

void Cadastrar(string nome) {
    Console.WriteLine ($"Novo usuário '{nome}' cadastrado com sucesso.");
    usuarios.Add(nome);
}

while (!sair) {
    Console.Clear();
    Console.WriteLine ("===========================");
    Console.WriteLine ("  Sistema de Autenticação  ");
    Console.WriteLine ("===========================");

    Console.Write ("Digite seu nome: ");
    string nomeUsuario = Console.ReadLine()!;

    if (usuarios.Contains(nomeUsuario)) {
        Console.WriteLine ($"Bem vindo, {nomeUsuario}");
        sair = true;
    }
    else {
        Console.WriteLine ("Usuário não cadastrado."); Console.ReadKey();
        Console.Clear();
        Console.WriteLine ("=============================");
        Console.WriteLine ("      Opções do Sistema      ");
        Console.WriteLine ("=============================");
        Console.WriteLine ("1. Cadastrar novo usuário");
        Console.WriteLine ("2. Acessar como convidado");
        Console.WriteLine ("3. Sair");
        Console.Write ("Selecione sua opção: ");
        int opcao = int.Parse(Console.ReadLine()!);

        switch (opcao) {
            case 1: Cadastrar(nomeUsuario); Console.ReadKey(); break;
            case 2: Console.WriteLine ($"Acesso concedido ao convidado."); Console.ReadKey(); sair = true; break;
            case 3: Console.WriteLine ("Saindo do programa..."); sair = true; break;
        }
    }
}
1 resposta
solução!

Sua lógica está excelente Diego, estou vendo suas publicações no forum, acredito que você já pode começar a colucar as validações nas funções como boas práticas, por exemplo se o usuário não respondesse na quando o sistema perguntasse o nome dele e a resposta dele fosse null ou "". Além disso futuramente comecei a usar try e catch, será de suma importância quando estiver mais experiente e desenvolvendo coisas mais complexas.

void Cadastrar(string nome)
{
    try
    {
        if (!string.IsNullOrEmpty(nome))
        {
            Console.WriteLine($"Novo usuário '{nome}' cadastrado com sucesso.");
            usuarios.Add(nome);
        }
        else
        {
            Console.WriteLine("O nome do usuário não pode ser nulo ou vazio.");
        }
    }
    catch (Exception e)
    {
        Console.WriteLine($"Erro ao cadastrar usuário: {e.Message}");
    }
}