Hi iam trying to put my code contract on interface on my class and i write something like this:
[ContractClass(typeof(MyClassContract))]
interface IMyClass
{
int Id { get; set; }
}
[ContractClassFor(typeof(IMyClass))]
sealed class MyClassContract : IMyClass
{
public int Id
{
get { return Id; }
set { Contract.Requires(value > 0); }
}
}
public class MyClass : IMyClass
{
private int _id;
public int Id
{
get { return _id; }
set { _id = value; }
}
}
but don't like to be forced to define a get in contract that will be never used, mean that i can write it as
get { return "abcdrdkldbfldsk"; }
and don't like to be forced to use public property in an internal class only because cant write
get { return ImyClass.Id; }
EDIT: this is what i would like to write:
[ContractClassFor(typeof(IMyClass))]
sealed class MyClassContract : IMyClass
{
int IMyClass.Id
{
set { Contract.Requires(value > 0); }
}
}