चूंकि सी # में फ्रीस्टैंडिंग कार्यों के लिए समर्थन की कमी है, मुझे रूपांतरण कार्यों को रखने के लिए एक जगह खोजना मुश्किल लगता है। उदाहरण के लिए, मैं एक संख्या को एक संख्या में परिवर्तित करना चाहता हूं। सी ++ में, मैं इसके लिए निम्नलिखित फ्रीस्टैंडिंग फ़ंक्शन कर दूंगा:रूपांतरण कार्यों को कहां रखा जाए?
UINT32 ConvertToUint32(const MyEnum e);
मैं इसे सी # में कैसे कर सकता हूं? क्या मुझे फ़ंक्शन रखने के लिए एक डमी स्थिर वर्ग बनाना चाहिए, और यदि हां, तो मैं इसके लिए सार्थक नाम कैसे प्राप्त कर सकता हूं? या मैं आंशिक वर्ग कनवर्ट करना चाहिए?
कोई विचार?
अग्रिम धन्यवाद।
अद्यतन: पूर्वदर्शी में, मेरा उदाहरण बहुत अच्छी तरह से चुना नहीं गया था, क्योंकि enum और int के बीच एक डिफ़ॉल्ट रूपांतरण मौजूद है।
Person ConvertToPerson(const SpecialPersonsEnum e);
MyEnum ई = (MyEnum) 3; या MyInt i = (Int) e; सी # में int और enum के बीच कनवर्ट करने के दोनों स्वीकार्य तरीके हैं।ऐसा कहा जा रहा है, मैं हमेशा अपने रूपांतरण कार्यों को उपयोगिता वर्ग में डालता हूं। – jle
+1 'आंशिक वर्ग कनवर्ट' अच्छा विचार है। –
यदि आप एक एनम से कक्षा के व्यक्ति में रूपांतरण चाहते हैं तो ** एक रूपांतरण ऑपरेटर ** लिखें। एक विधि के साथ गड़बड़ क्यों करें जब आप केवल एक ऑपरेटर लिख सकते हैं जो आप चाहते हैं? –