निम्नलिखित कोड मुझे चेतावनी देता है Contract class 'FooContracts' should be an abstract class
। उन सभी उदाहरणों से मैंने ऑनलाइन पढ़ा है (उदा। 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);
}
}
मैं दृश्य स्टूडियो 2010 में हूँ, इस परियोजना के गुणों का Code Contracts
अनुभाग में निम्न सेटिंग के साथ:
- क्रम अनुबंध जाँच हो रही है (
Full
के लिए सेट) प्रदर्शन करना - प्रदर्शन स्टेटिक अनुबंध जाँच हो रही है (
Static Checking
के तहत) पृष्ठभूमि में - चेक
मैंने रीशेर्पर को बंद करने के लिए CONTRACTS_FULL
संकलन प्रतीक भी परिभाषित किया।
क्या मुझे चेतावनी के बिना इस संकलन को बनाने के लिए कुछ याद आ रही है?
हुह। लिंक के लिए धन्यवाद। उस तथ्य को मैंने कभी भी उल्लेख नहीं किया और न ही किसी भी उदाहरण कोड में प्रदर्शित किया। – tmont