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

CS1503: Argumento 1: não é possível converter de void para bool

Ao criar um método void para realizar as operações de saque e deposito na classe Main o compilador me retorna o seguinte erro "CS1503: Argumento 1: não é possível converter de void para bool". Gostaria de saber como contornar esse problema. Detalhe, se eu colocar o retorno do tipo bool nos métodos Depositar e Sacar e adicionar o return com true e false o problema é corrigido.

Classe main

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

namespace _4_ByteBank
{
    internal class Program
    {
        static void Main(string[] args)
        {
            ContaCorrente cc01 = new ContaCorrente("Gabriela", 886, 886146, 0);


            Console.WriteLine("\n" + cc01.saldoDaConta());
            Console.WriteLine(cc01.Depositar(100));
            Console.WriteLine(cc01.Sacar(50));
            Console.WriteLine(cc01.saldoDaConta());

            Console.ReadLine();

        }
    }
}

Classe ContaCorrente

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

namespace _4_ByteBank
{
    internal class ContaCorrente
    {
        private string titular;
        private int numeroAgencia;
        private int numero;
        private double saldo;

        public ContaCorrente(string nome, int numeroAgencia, int numero, int saldo)
        {
            this.titular = nome;
            this.numeroAgencia = numeroAgencia;
            this.numero = numero;
            this.saldo = saldo;

            Console.WriteLine("Dados da Conta Bancaria" +
                "\nTitular: " + this.titular +
                "\nNúmero da Agência: " + this.numeroAgencia + 
                "\nNúmero: " + this.numero + 
                "\nSaldo R$ " + this.saldo);
        }

        public double saldoDaConta()
        {
            return this.saldo;
        }

        public void Depositar(double valor)
        {
            if (valor < 1)
            {
                Console.WriteLine("Valor digitado inválido");

            }
            else
            {
                this.saldo += valor;

            }

        }

        public void Sacar(double valor)
        {
            if (valor > this.saldo)
            {
                Console.WriteLine("Saldo insuficiente");

            }
            else
            {
                this.saldo -= valor;

            }


        }


    }
}
2 respostas

Consegui resolver o problema. Eu estava colocando o método sacar e depositar dentro do Console.WriteLine() e isso estava gerando o erro.

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

namespace _4_ByteBank
{
    internal class Program
    {
        static void Main(string[] args)
        {
            ContaCorrente cc01 = new ContaCorrente("Gabriela", 886, 886146, 0);


            Console.WriteLine("\n" + cc01.saldoDaConta());
            cc01.Depositar(100);
            cc01.Sacar(50);
            Console.WriteLine(cc01.saldoDaConta());

            Console.ReadLine();

        }
    }
}
solução!

Fala Gabriel, boa tarde.

Que bom que conseguiu resolver, a mensagem é por que o método Sacar foi definido como void.

Att.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software