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

Desafio - Conta bancarioa 1-3

O Programa trata de duas contas, cada uma com tratamento de impressão diferente

Program.cs

//Criar um objeto do tipo Conta, adicionar dados e mostrar as informações titular e saldo no console, utilizando interpolação de strings.
Conta conta1 = new Conta();
conta1.indicador = "013-Poupança";
conta1.titular = "Lucas Santos";
conta1.saldo = 4.97F;
//conta1.senha = "****";
Console.WriteLine($"Titular: {conta1.titular}\n Saldo: R${conta1.saldo}");

//Desenvolver um método da classe Conta que exibe suas informações.
Conta conta2 = new Conta();
Console.WriteLine("Digite o nome do titular");
conta2.titular =  Console.ReadLine()!;
Console.WriteLine("Digite a operação 013 ou 001");
conta2.indicador = Console.ReadLine()!;
Console.WriteLine("Saldo");
conta2.saldo = float.Parse(Console.ReadLine());
Console.Clear();
//conta1.ExibirDados();
conta2.ExibirDados();

conta.cs

class Conta
{
    public string indicador;
    public string titular;
    public float saldo;
    public string senha;
    //Exibir informações
    public void ExibirDados()//A terminar
    {
        if ((indicador == "013") || (indicador == "001"))
        {
            if (indicador == "013")
            {
                Console.WriteLine($"Tipo de Conta:{indicador} Poupança");
            }
            else
            {
                Console.WriteLine($"Tipo de Conta:{indicador} Conta Corrente");
            }
        }
        else
        {
            Console.WriteLine("Conta inexistente");
           
        }
        
       // Console.WriteLine($"Tipo de Conta:{indicador}");
       Console.WriteLine($"Titular:{titular}");
       Console.WriteLine($"Saldo:R${saldo}");
    }

}

Ainda assim aparece alguns erros

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Bom dia,

Valeu por compartilhar o print, Ivan. Vou te explicar os avisos que aparecem:

  1. warning CS8604: Possível argumento de referência nula para o parâmetro 's' em 'float float.Parse(string s)'

Isso acontece porque o Console.ReadLine() pode retornar null, e o compilador avisa que você está passando esse valor diretamente para o float.Parse().

Correção:
Você pode usar o null-forgiving operator (!) ou validar antes:

conta2.saldo = float.Parse(Console.ReadLine()!);

ou, de forma mais segura:

string? entradaSaldo = Console.ReadLine();
if (float.TryParse(entradaSaldo, out float saldo))
{
    conta2.saldo = saldo;
}
else
{
    conta2.saldo = 0; // ou algum valor padrão
}
  1. warning CS8618: O campo não anulável 'indicador' precisa conter um valor não nulo ao sair do construtor.

Isso aparece porque sua classe Conta tem propriedades do tipo string, mas você não inicializou essas variáveis no construtor. O compilador entende que elas podem ficar nulas.

Correções possíveis:

  • Inicializar no momento da declaração:
public string indicador = "";
public string titular = "";
public string senha = "";
  • Ou criar um construtor que obrigue a informar valores:
class Conta
{
    public string indicador { get; set; }
    public string titular { get; set; }
    public float saldo { get; set; }
    public string senha { get; set; }

    public Conta(string indicador, string titular, float saldo, string senha)
    {
        this.indicador = indicador;
        this.titular = titular;
        this.saldo = saldo;
        this.senha = senha;
    }
}

Assim o compilador garante que sempre terá valores válidos.

Resumindo

  • O primeiro warning é porque Console.ReadLine() pode ser nulo → use ! ou TryParse.
  • O segundo é porque suas variáveis não foram inicializadas → inicialize com "" ou crie um construtor.