मैं अभी C # क्लास ले रहा हूं और चीजों को करने का सबसे अच्छा तरीका जानने की कोशिश कर रहा हूं। मैं एक जावा बैकग्राउंड से आता हूं और इसलिए मैं केवल जावा बेस्ट-प्रैक्टिस से परिचित हूं; मैं एक C # नौसिखिया हूँ!
जावा में यदि मेरे पास कोई निजी संपत्ति है, तो मैं यह करता हूं;
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
C # में, मैं देखता हूं कि ऐसा करने के कई तरीके हैं।
मैं इसे जावा की तरह कर सकता हूं:
private string name;
public void setName(string name) {
this.name = name;
}
public string getName() {
return this.name;
}
या मैं इसे इस तरह से कर सकता हूं:
private string name;
public string Name {
get { return name; }
set { name = value; }
}
या:
public string Name { get; set; }
मुझे कौन सा उपयोग करना चाहिए, और प्रत्येक दृष्टिकोण के साथ शामिल किए गए कैविएट या सूक्ष्मताएं क्या हैं? कक्षाएं बनाते समय, मैं सामान्य सर्वोत्तम प्रथाओं का पालन कर रहा हूं जो मुझे जावा (विशेष रूप से प्रभावी जावा पढ़ने) से पता है। इसलिए, उदाहरण के लिए, मैं अपरिवर्तनीयता का पक्ष ले रहा हूं (केवल आवश्यक होने पर ही निपटान प्रदान करता है)। मैं यह देखने के लिए उत्सुक हूं कि ये अभ्यास C # में बसने और पाने के विभिन्न तरीकों के साथ कैसे फिट होते हैं; अनिवार्य रूप से, मैं जावा दुनिया से C # में सर्वोत्तम प्रथाओं का अनुवाद कैसे करूंगा?
संपादित करें
मैं इसे जॉन स्कीट के उत्तर के लिए एक टिप्पणी के रूप में पोस्ट कर रहा था, लेकिन तब यह लंबा हो गया:
एक गैर-तुच्छ संपत्ति (यानी, महत्वपूर्ण प्रसंस्करण और सत्यापन के साथ शायद) के बारे में क्या? क्या मैं अभी भी इसे एक सार्वजनिक संपत्ति के माध्यम से उजागर कर सकता हूं लेकिन तर्क में get
और इसमें संलग्न तर्क के साथ set
? मुझे समर्पित सेटर और गेट्टर मेथड (संबद्ध प्रसंस्करण और सत्यापन तर्क के साथ) क्यों करना चाहिए।