Ir para o conteúdo
Psycho_Mind

[Resolvido] Erro C# com Code Constracts

Mensagens Recomendadas

Psycho_Mind

Boas.

Estou a utilizar o Code Contracts que me está a dar um erro de visibilidade, que de fato consta no mannual do Code Contrats e esclarecem o porque,

"All members mentioned in a contract must be at least as visible as the method in which they appear. For

instance, a private eld cannot be mentioned in a precondition for a public method: clients wouldn't be

able to validate such a contract before they call the method."

mas o meu problema está a ser o não conseguir alterar o código de forma a que deixe de dar o erro. Deixo o código que estou a utilizar:

class CalculoComContratos
   {
       private int num;
       private int den;
       public CalculoComContratos(int numerador, int denominador)
       {
           num = numerador;
           den = denominador;
       }
       public int Divide()
       {
           Contract.Requires(den > 0);
           if (den > 0)
               return num / den;
           return num;
       }
   }
   class Program
   {
       static void Main(string[] args)
       {
           CalculoComContratos calc = new CalculoComContratos(4, 0);
           Console.WriteLine("O resultado é {0}", calc.Divide());
           Console.ReadLine();
       }
   }
}

Editado por pmg
Falta LP

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Penso que tem a ver com o teu den ser uma variavel privada.

Experimenta trocar por uma propriedade publica.

Isso foi logo o que fiz...

public int den;

...quando li o manual, mas continuo a obter o mesmo erro.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pikax

public int den nao e' uma propriedade!

public int den{get;set;}//propriedade auto-implementada


Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Psycho_Mind

Já devia de ter aprendido que em Windows nada se resolve sem reiniciar o pc :)

Não sei se foi disso, mas parece que já funciona.

Obrigado a todos.

Abraço.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.