tava observando que na class sacar tem public void Sacar(double valor){ Teoricamente só deveria ir valores tipo numero porem a esse método passa impressão que por trás ele é string por aceitar - ou outro tipo de operadores pq isso acontece ? }
tava observando que na class sacar tem public void Sacar(double valor){ Teoricamente só deveria ir valores tipo numero porem a esse método passa impressão que por trás ele é string por aceitar - ou outro tipo de operadores pq isso acontece ? }
Olá Daniel, tudo bem?
Na verdade o método Sacar
aceita somente valores numéricos, principalmente por estar se referindo a dinheiro.
Acredito que você tenha tido essa impressão, por conta da mensagem no momento da exceção, certo? Se for por isso, pense que, se não pudéssemos inserir uma mensagem, seria complicado o usuário saber o motivo da operação não ter dado certo. Então em uma validação dentro do método, podemos inserir uma string
.
Inclusive, podemos passar mensagens com o Console.WriteLine
, para informar exatamente o que está se passando. Veja:
public void Sacar(double valor)
{
if (_saldo < valor)
{
Console.WriteLine("Valor maior ao disponível em conta. Verifique seu saldo.");
}
_saldo -= valor;
}
Se ficou com alguma dúvida, fique tranquilo para perguntar novamente.
Abraços!
então ao chamar o método podemos colocar o sinal de menos ou qualquer um exemplo ( Saquevalor( -10 ); e se não validamos ele aceita... a duvida é pq ele aceita esses sinais pois passa impressão que por trás ele é uma string aceitando coisas além do numérico obgd :)
Na verdade o (-10) é um tipo numérico negativo, e na linguagem ele será um int, que por sua vez cabe dentro de um double.
Então o sinal de menos é aceito, porque números inteiros também podem ser negativos. Ex: (-1) (-2) (-3) (-4) ....
Neste capítulo abaixo é explicado um pouco mais sobre os tipos numéricos
https://cursos.alura.com.br/course/csharp-parte-1-primeiros-passos/task/37971
obgd !