नहीं, वहाँ कोई मेटाडाटा के साथ एक संपत्ति के मूल्य निर्धारित करने की क्षमता में बनाया गया है। आप किसी प्रकार के फैक्ट्री का उपयोग कर सकते हैं जो प्रतिबिंब के साथ कक्षा के उदाहरण बनाएगा और फिर डिफ़ॉल्ट मान सेट कर सकता है। लेकिन संक्षेप में, आपको कन्स्ट्रक्टर (या फील्ड सेटर्स ... जो कि कन्स्ट्रक्टर को उठाए जाते हैं) का उपयोग करने की आवश्यकता है। डिफ़ॉल्ट मान सेट करने के लिए।
यदि आपके पास अपने कंडक्टर के लिए कई अधिभार हैं तो आप constructor chaining देख सकते हैं।
सी # 6 + आप कुछ इस तरह कर पा रहे हैं का उपयोग करना ...
public string MyValue { get; set; } = "My Default";
ओह, यह और भी मजेदार है क्योंकि लोगों को भी कुछ इस तरह का अनुरोध किया है हो जाता है ...
public string MyValue {
private string _myValue;
get { return _myValue ?? "My Default"; }
set { _myValue = value; }
}
... लाभ यह है कि आप क्षेत्र के दायरे को केवल संपत्ति कोड में एक्सेसिबल करने के लिए नियंत्रित कर सकते हैं ताकि आपको गेटटर/सेटर का उपयोग किए बिना राज्य के साथ खेलने के लिए अपनी कक्षा में किसी और चीज के बारे में चिंता न करें।
स्रोत
2010-06-18 16:32:26
क्या कोई ऐसी जगह है जहां मैं इस सुविधा के लिए वोट दे सकता हूं या ऐसा कुछ? – BrunoLM
आप connect.microsoft.com पर कुछ ढूंढ पाएंगे। –
ईक ... मैंने इसे कोडप्रोजेक्ट पर अभी पाया है। ऑब्जेक्ट का निर्माण करने के बाद डिफ़ॉल्ट मान सेट करने के लिए यह प्रतिबिंब का उपयोग करता है। http://www.codeproject.com/KB/dotnet/AutoPropsDefaultValues.aspx –