Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Dúvida Video 3 - inconsistent

Olá a todos.

Estou fazendo os exercícios da aula 1 de SOLID e fiz exatamente como está no vídeo mas não descobri porque está dando mensagem de inconsistent accessbility na property IRegraDeCalculo. Por exemplo:

Inconsistent accessibility: property type 'IRegraDeCalculo' is less accessible than property 'Cargo.Regra'

E fica esta mensagem tanto na classe Cargo, Dba, Desenvolvedor.

Deixei assim minha RegraDeCalculo:

 interface IRegraDeCalculo
    {
        double Calcula(Funcionario funcionario);

E como exemplo, deixei minha classe Cargo como abaixo:

public abstract class Cargo
    {
        public IRegraDeCalculo Regra { get; private set; }

        public Cargo(IRegraDeCalculo regra)
        {
            this.Regra = regra;
        }
    }

Onde Regra e Cargo ficam sublinhados com o erro.

Agradeço alguma dica.

3 respostas

Oi João, tudo bom?

Acredito que esteja faltando o acesso publico à interface:

public interface IRegraDeCalculo
    {
        double Calcula(Funcionario funcionario);

Lembrando que quando a gente não define a visibilidade de uma classe/property o padrão é a visibilidade "namespace" private.

Então, nesse caso, o erro ocorre porque temos Regra que é do tipo IRegraDeCalculo com a visibilidade restrita ao namespace, dentro da classe Cargo que possui a visibilidade publica.

É dai que vem o problema de consistencia.

Qualquer problema é só falar.

Abraço e bons estudos =)

Olá João,

o erro indica que o nível de acesso da propriedade Regra na classe Cargo é maior do que o da tipo dela IRegraDeCalculo. Isso está ocorrendo porque a propriedade é public, mas a interface não foi definida como public também:

 interface IRegraDeCalculo
 {
        double Calcula(Funcionario funcionario);
}
solução

Boa noite.... André / Lucas.. voces são 10... é isso aí.. eu não sei o que fiz mas eu tinha deixado minha interface como public mas apareceu outro erro e por isso postei minha dúvida... mas tranquilo... embora já esteja na lição sobre SOLID confesso que são coisas de novato.... :)) nao tenho experiência... mas se Deus quiser chego lá..

Obrigado André... Obrigado Lucas.

Abraço.