खोज…


टिप्पणियों

कोड अनुबंध वस्तुओं के पूर्व / बाद की स्थितियों की पूर्व / पोस्ट की शर्तों के संकलन या रनटाइम विश्लेषण के लिए अनुमति देते हैं। इन शर्तों का उपयोग कॉलर्स और रिटर्न वैल्यू मैच वैध राज्यों को आवेदन प्रसंस्करण के लिए सुनिश्चित करने के लिए किया जा सकता है। कोड अनुबंध के लिए अन्य उपयोगों में प्रलेखन पीढ़ी शामिल है।

पूर्व शर्त

Preconditions तरीकों को इनपुट मापदंडों के लिए न्यूनतम आवश्यक मान प्रदान करने की अनुमति देता है

उदाहरण...

void DoWork(string input)
{
    Contract.Requires(!string.IsNullOrEmpty(input));

    //do work
}

स्थैतिक विश्लेषण परिणाम ...

यहाँ छवि विवरण दर्ज करें

Postconditions

पोस्टकंडिशन यह सुनिश्चित करते हैं कि किसी विधि से दिए गए परिणाम प्रदान की गई परिभाषा से मेल खाएंगे। यह कॉलर को अपेक्षित परिणाम की परिभाषा प्रदान करता है। पोस्टकॉन्डिशन को सरल निहितार्थ के लिए अनुमति दी जा सकती है क्योंकि कुछ संभावित परिणाम स्थिर विश्लेषक द्वारा प्रदान किए जा सकते हैं।

उदाहरण...

string GetValue()
{
    Contract.Ensures(Contract.Result<string>() != null);

    return null;
}

स्टेटिक एनालिसिस का रिजल्ट ...

यहाँ छवि विवरण दर्ज करें

इंटरफेस के लिए अनुबंध

कोड कॉन्ट्रैक्ट्स का उपयोग करके एक इंटरफ़ेस के लिए एक अनुबंध लागू करना संभव है। यह एक अमूर्त वर्ग की घोषणा करके किया जाता है जो इंटरफेस को प्रभावित करता है। इंटरफ़ेस को ContractClassAttribute ClassAttribute के साथ टैग किया जाना चाहिए और अनुबंध की परिभाषा (अमूर्त वर्ग) को ContractClassForAttribute ClassForAttribute के साथ टैग किया जाना चाहिए

C # उदाहरण ...

[ContractClass(typeof(MyInterfaceContract))]
public interface IMyInterface
{
    string DoWork(string input);
}
//Never inherit from this contract defintion class
[ContractClassFor(typeof(IMyInterface))]
internal abstract class MyInterfaceContract : IMyInterface
{
    private MyInterfaceContract() { }

    public string DoWork(string input)
    {
        Contract.Requires(!string.IsNullOrEmpty(input));
        Contract.Ensures(!string.IsNullOrEmpty(Contract.Result<string>()));
        throw new NotSupportedException();
    }
}
public class MyInterfaceImplmentation : IMyInterface
{
    public string DoWork(string input)
    {
        return input;
    }
}

स्थैतिक विश्लेषण परिणाम ...

यहाँ छवि विवरण दर्ज करें

कोड अनुबंध को स्थापित करना और सक्षम करना

जबकि System.Diagnostics.Contracts .Net फ्रेमवर्क में शामिल है। कोड अनुबंध का उपयोग करने के लिए आपको Visual Studio एक्सटेंशन स्थापित करना होगा।

Extensions and Updates तहत Code Contracts खोज करते हैं Extensions and Updates फिर Code Contracts Tools इंस्टॉल करते हैं

कोड अनुबंध उपकरण स्थापित करें

उपकरण स्थापित होने के बाद आपको अपने प्रोजेक्ट समाधान में Code Contracts को सक्षम करना होगा। कम से कम आप शायद Static Checking (बिल्ड के बाद चेक) को सक्षम करना चाहते हैं। यदि आप एक पुस्तकालय लागू कर रहे हैं जिसका उपयोग अन्य समाधानों द्वारा किया जाएगा, तो आप Runtime Checking सक्षम करने पर भी विचार कर सकते हैं।

प्रोजेक्ट सेटिंग्स



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow