c# - How to format enum with flags attribute as hex value? -


मैं enums toString विधि का उपयोग करके enum मान प्रदर्शित करने का प्रयास करता हूं। Enum में फ्लैग विशेषता है।

ऐसे मान हैं जो enum मानों के किसी भी संयोजन से मेल नहीं खाते हैं।
इस मामले में, ToString संख्या दशमलव के रूप में देता है, लेकिन मैं उसे हेक्स स्ट्रिंग के रूप में प्रदर्शित करना चाहता हूं।

का उपयोग करना टूस्ट्रिंग ("X8") हमेशा हेक्स मूल्य वापस कर देगा।

मैंने कोशिश की Enum.IsDefined , लेकिन यह गैर-संयुक्त मान पर केवल सच देता है।

उदाहरण:

  0x00000201 - & gt; "XXt, TSW_AUTO_DETECT" (ज्ञात मान) 0x00010108 - & gt; "00010108" (अज्ञात मान)  

Q: कैसे "toString" अज्ञात enum मानों के रूप में हेक्स वैल्यू?

आप जांच सकते हैं कि मान के पास कोई अन्य बिट्स की कुल बिट मुखौटा झंडे की गणना यदि हां, तो नंबर लौटाएं, अन्यथा सामान्य टॉथरिंग:

  सार्वजनिक स्थिर स्ट्रिंग GetDescription (EnumName मान) {var enumtotal = Enum.GetValues ​​(typeof (EnumName))। कास्ट & lt; int & gt; () .ग्रेगेट ((i1, i2) = & gt; i1 | i2); // यह प्रदर्शन के लिए buffered किया जा सकता है अगर ((एम्पलॉटल | (int) मान) == एनामेटल) रिटर्न वैल्यू। टॉस्ट्रिंग (); वापसी ((इंट) मान) .ओस्ट्रिंग ("X8"); }  

Comments

Popular posts from this blog

import - Python ImportError: No module named wmi -

Editing Python Class in Shell and SQLAlchemy -

lua - HowTo create a fuel bar -