.NET Framework
कोड अनुबंध
खोज…
टिप्पणियों
कोड अनुबंध वस्तुओं के पूर्व / बाद की स्थितियों की पूर्व / पोस्ट की शर्तों के संकलन या रनटाइम विश्लेषण के लिए अनुमति देते हैं। इन शर्तों का उपयोग कॉलर्स और रिटर्न वैल्यू मैच वैध राज्यों को आवेदन प्रसंस्करण के लिए सुनिश्चित करने के लिए किया जा सकता है। कोड अनुबंध के लिए अन्य उपयोगों में प्रलेखन पीढ़ी शामिल है।
पूर्व शर्त
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
सक्षम करने पर भी विचार कर सकते हैं।