उस उद्देश्य के लिए [शुद्ध] विशेषता System.Diagnostic.Contracts नेमस्पेस में जोड़ा गया है। आगे स्पष्टीकरण के लिए here देखें। हालांकि आप एक ही संपत्ति को बदलने से नहीं रोक सकते हैं। विधि को ऑब्जेक्ट स्थिति को बदलने की अनुमति नहीं है (जैसे सी ++ कॉन्स)।
संपादित करें: दुर्भाग्यवश शुद्ध विशेषता वर्तमान उपकरणों के साथ काम नहीं करती है। करने के लिए Pure चेकों के प्रलेखन 'भविष्य में' का समर्थन किया जाएगा के बारे में
public class Test
{
private int x = 0;
[Pure]
public void Foo()
{
x++;
}
}
: मैं एक परीक्षण निम्न कोड के साथ या तो स्थिर में है और न ही क्रम प्रकार की जाँच में कोई त्रुटि संदेश लागू किया,। जब भी वह ("कोड अनुबंध टीम उस पर भारी काम कर रही है, इस प्रकार भविष्य में रिलीज में एक शुद्धता परीक्षक के साथ आना।")।
मैं इस विश्वास का उपयोग कर रहा हूं कि यह सही तरीके से काम करता है। दस्तावेज कहता है कि अनुबंध के भीतर बुलाए गए सभी तरीकों को शुद्ध के रूप में घोषित किया जाना चाहिए। यह नहीं कहता कि यह चेक किया गया है या नहीं।
तो आपके प्रश्न का उत्तर यह है: इसके लिए कोई वर्तमान समर्थन नहीं है, लेकिन भविष्य में हो सकता है।
ग्रेट, धन्यवाद। यह काम करता हैं। –