A resposta do exercício diz simplismente como solução o seguinte:
O código não compila. Como tanto a classe TotalizadorDeContas quanto seu método Adiciona são públicos, eles podem ser acessados de qualquer ponto da aplicação, porém como o método Adiciona recebe uma classe não pública, existem situações em que o método Adiciona pode ser acessado, porém seu argumento, não. Para evitar esses casos, o C# gera um erro de compilação.
Essa explanação para o erro de acessibilidade penso ser muito fraco e não ataca todas as tratativas e possibilidades possíveis.
Por que? Suponhamos que a classe Conta tenha de ficar - obrigatoriamente - como Internal, ou seja, foi definido assim no projeto (como estar hoje no exercício). Então como solucionar o erro?
Entendendo o problema: Sabemos que o método Adiciona() é do tipo public e recebe uma classe Conta que não é public, ela tem o modificador internal (padrão, quando não setamos public, protected, protected internal ou private):
class Conta { } = internal class Conta { }
O modificador padrão internal permite que qualquer classe do mesmo assembly (DLL) acesse tal classe ou atributo, porém não permite que nada fora do assembly acesse.
Adendo importante: Os modificadores de acesso no C# por hieraquia de menor acessibilidade são:
- private;
- protected internal;
- internal (padrão - ou seja - quando não declaramos);
- protected;
- public.
Então, suponhamos que a classe Conta tenha de ficar - obrigatoriamente - como Internal, ou seja, como estar hoje no exercício.
Para solucionar este problema o modificador de acesso do seu método Adicionar(Conta c), tem de ter o mesmo níveis de acesso/visibilidade para que respeite o que foi definido na classe Conta.
Alguns exemplo que solucionariam o caso:
internal void Adiciona(Conta c) { }
ou
private void Adiciona(Conta c) { }
Não é apenas colocar a classe Conta como public (que é uma das possíveis soluções).
Sugiro uma análise e correção para esta questão, pois quem não tem conhecimento neste quesito pode-se persistir a dúvida. Foi o que me ocorreu e fui pesquisar sobre este quesito.