Следующий код дает мне предупреждение Contract class 'FooContracts 'должен быть абстрактным классом
. Из всех примеров, которые я читал в Интернете (например, http://www.infoq.com/articles/code-contracts-csharp ), это должно работать (предположительно, без предупреждений компилятора).
[ContractClass(typeof(FooContracts))]
public interface IFoo {
void Bar(string foo);
}
[ContractClassFor(typeof(IFoo))]
internal sealed class FooContracts : IFoo {
void IFoo.Bar(string foo) {
Contract.Requires(foo != null);
}
}
Я использую Visual Studio 2010 со следующими настройками в разделе Контракты кода
свойств проекта:
Полный
) Статическая проверка
) Я также определил символ компиляции CONTRACTS_FULL
, чтобы ReSharper отключился.
Мне что-то не хватает для компиляции без предупреждений?