एक देशी कोड enum
से प्रबंधित कोड enum
जो एक ही enum
मूल्यों को रोकने के लिए कास्टिंग (C++/CLI में) करने का सही तरीका क्या है? सी ++/सीएलआई में उदाहरण के लिए (int)
उदाहरण के लिए कास्टिंग के सी # तरीके का उपयोग करने में कोई अंतर है।C++/CLI: अप्रबंधित enum से प्रबंधित enum करने के लिए कास्टिंग
उत्तर
enum shape_type_e
{
stUNHANDLED = 0, //!< Unhandled shape data.
stPOINT = 1 //!< Point data.
...
};
मान लिया जाये कि अपने मूल कोड है और अपने प्रबंधित कोड
public enum class ShapeType
{
Unhandled = 0,
Point = 1,
...
};
आप
shape_type_e nativeST = stPOINT;
ShapeType managedST = static_cast<ShapeType>(nativeST);
Debug.Assert(managedST == ShapeType::Point);
मैं हमेशा static_cast
का उपयोग का उपयोग कर देशी करने में कामयाब से डाल सकता है, कास्टिंग का सी # रास्ता नहीं।
यह निर्भर करता है। उदाहरण के लिए, यदि आपके पास एक सीएलआई एनम है जिसमें अंतर्निहित प्रकार का यूहॉर्ट है, तो इसमें 257 की कमी नहीं हो सकती है। डिफ़ॉल्ट रूप से सीएलआई एनम int पर आधारित है, जो ज्यादातर मामलों में ठीक होना चाहिए। यदि आपका मूल सी ++ कोड अंतर्निहित प्रकार के रूप में 32 बिट इन्स/64 बिट इन्स को बिना अंतर्निहित प्रकार के रूप में उपयोग करता है, तो अपने सीएलआई एनम के आधार को UInt32, लंबे या उलझन में स्विच करें।
मुझे यह समस्या नहीं होगी क्योंकि दोनों enum प्रकार int हैं। लेकिन इस मामले में किस प्रकार का कास्ट इस्तेमाल किया जाना चाहिए? क्या यह const_cast, static_cast, dynamic_cast, reinterpret_cast, safe_cast या सिर्फ C# cast होना चाहिए (एक उदाहरण है (int))? – Lopper
- 1. enum ordinal से enum टाइप
- 2. enum
- 3. enum
- 4. Enum
- 5. enum
- 6. enum
- 7. enum
- 8. enum
- 9. enum
- 10. enum
- 11. enum
- 12. enum
- 13. खाली enum (enum {};) पोर्टेबल है?
- 14. कैसे() ओवरराइड toString साथ enum की स्ट्रिंग परिणाम कन्वर्ट करने के लिए वापस enum के लिए?
- 15. तैयार कथन में mysql enum के लिए जावा enum
- 16. Enum स्ट्रिंग के लिए सी ++
- 17. int से enum
- 18. सी ++ enum से
- 19. जावा कस्टम enum मूल्य Enum को
- 20. स्टोर मानचित्र <Enum, Enum> स्ट्रिंग
- 21. सी ++ एक enum करने के लिए एक चल बिन्दु मूल्य कास्टिंग - लेकिन नहीं VS 2010
- 22. Enum, एक enum में अब भी मौजूद
- 23. enum valueOf IllegalArgumentException: कोई enum const class
- 24. प्रदर्शन Enum वर्णन Jqgrid बजाय Enum
- 25. enum संपत्ति
- 26. एक enum
- 27. .NET Enum
- 28. नेस्टेड enum
- 29. Enum डीटीओ के
- 30. सी # - enum के तत्व
उपरोक्त कोड से, मुझे लगता है कि आप देशी से प्रबंधित enum से कास्टिंग कर रहे हैं। दूसरे तरीके से देशी से प्रबंधित करने के बारे में क्या? – Lopper
स्टेटिक कास्ट आपके दोस्त दोनों तरीके हैं ... देशीST = static_cast (प्रबंधितST); –
mcdave
धन्यवाद mcdave! :) – Lopper