मेरे पास struct
है जिसमें दो सूचियां हैं:क्या एक कन्स्ट्रक्टर का उपयोग किये बिना संरचना के सदस्यों को शुरू करने का कोई तरीका है?
struct MonthData
{
public List<DataRow> Frontline;
public List<DataRow> Leadership;
}
हालांकि, जब मैं संरचना बनाई जाती है तो मैं दोनों को प्रारंभ करना चाहता हूं। यदि मैं कोशिश करता हूं:
struct MonthData
{
public List<DataRow> Frontline = new List<DataRow>();
public List<DataRow> Leadership = new List<DataRow>();
}
फिर मुझे मिलता है:
Error 23 'MonthData.Frontline': cannot have instance field initializers in structs
...
चूंकि structs में पैरामीटर रहित कन्स्ट्रक्टर नहीं हो सकते हैं, इसलिए मैं इसे केवल कन्स्ट्रक्टर में सेट नहीं कर सकता। अब तक, मैं केवल निम्नलिखित विकल्पों को देख सकता हूं:
- जब मैं MonthData
- का उदाहरण बनाता हूं तो दोनों गुणों को आरंभ करें संरचना के बजाय कक्षा का उपयोग करें
- पैरामीटर के साथ एक कन्स्ट्रक्टर बनाएं और का उपयोग करें
- उन गुणों के लिए गेटर्स और सेटर्स बनाएं जो उन्हें आलसी शुरू करें।
इसके लिए अनुशंसित दृष्टिकोण क्या है? अभी, मैं सोच रहा हूं कि यह एक वर्ग सबसे अच्छा विचार है।
इसे कक्षा बनाएं। एक बार जब आप संरचना में संदर्भ प्रकार जोड़ते हैं, तो यह वास्तव में एक मूल्य प्रकार नहीं है। – drdwilcox
क्या यह वास्तव में एक संदर्भ प्रकार (वर्ग) बनाम एक मान प्रकार (संरचना) बनाने के लिए ठीक है? यदि ऐसा है, तो आगे बढ़ें और इसे कक्षा बनाएं। – BoltClock
हाँ, इस प्रकार के लिए एक संरचना होने के लिए यह समझ में नहीं आता है। –