मैं .NET में कोड कॉन्ट्रैक्ट्स के बारे में सीख रहा हूं, और मैं शुद्ध कंस्ट्रक्टर्स के विचार को समझने की कोशिश कर रहा हूं। कोड ठेके प्रलेखन कहता है:
अनुबंध के भीतर कहे जाने वाले सभी तरीके शुद्ध होने चाहिए; यही है, वे किसी भी preexisting राज्य को अद्यतन नहीं करना चाहिए। शुद्ध विधि में प्रवेश के बाद बनाई गई वस्तुओं को संशोधित करने के लिए एक शुद्ध विधि की अनुमति है।
और PureAttributeप्रलेखन राज्यों:
इंगित करता है कि एक प्रकार या विधि शुद्ध है, अर्थात, यह कोई भी दृश्यमान परिवर्तन नहीं करता है।
मैं इन कथनों को समझता हूं जब यह तरीकों की बात आती है, लेकिन निर्माणकर्ताओं के बारे में क्या? मान लीजिए कि आपके पास इस तरह एक वर्ग था:
public class Foo
{
public int Value { get; set; }
public Foo(int value) {
this.Value = value;
}
}
यह निर्माता स्पष्ट रूप से नई Fooवस्तु की स्थिति को प्रभावित करता है , लेकिन इसका कोई अन्य दुष्प्रभाव नहीं है (उदाहरण के लिए यह किसी भी पैरामीटर में हेरफेर नहीं करता है या किसी गैर-शुद्ध तरीकों को कॉल नहीं करता है)। यह कोई उम्मीदवार है [Pure]या नहीं? [Pure]एक निर्माता पर एक विशेषता रखने का क्या महत्व है , और मुझे अपने कोड में कब करना चाहिए?