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

Classe TotalizadorDeContas - compila (difere da resposta do curso): ref: https://cursos.alura.com.br/course/csharp-orientacao-a-objetos/task/1651

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

namespace WindowsFormsApplication1
{
    class TotalizadorDeContas
    {
        public double Saldo { get; private set; }

        public void Adiciona(Conta c)
        {
            this.Saldo += c.saldo;
        }
    }
}
4 respostas

Olá Roberto,

o código do exercício realmente não deve compilar, tem uma diferença sutil nele. No caso faltou a sua classe TotalizadorDeContas ser public e veja se sua classe Conta não tem modificador de acesso, ou seja, ela está sem o public. Ai ficará igual ao exercício que é sobre incompatibilidade entre modificadores de acesso.

Obrigado Lucas. Realmente colocando a classe TotalizadorDeContas com o modificador de acesso public reflete o erro no método Adiciona, porém a minha classe TotalizadorDeContas sem o modificador public é acessada por outras classes dentro do mesmo projeto e o texto no exercício "Quando marcamos a classe como pública, ela se torna visível em todos os pontos da aplicação" parece dizer que quando não tem o modificador public não é acessada. Pergunta: se não indicarmos o modificador na classe, qual é o default?

"Quando marcamos a classe como pública, ela se torna visível em todos os pontos da aplicação" parece dizer que quando não tem o modificador public não é acessada. Pergunta: se não indicarmos o modificador na classe, qual é o default? Insisto na pergunta porque desejo saber a diferença, não apenas que são incompatíveis.

solução!

Quando você não marca nenhum modificador de acesso, se for método, atributo ou propriedade ele assume o private. Quando é classe ele assume o internal.