चलो कहते हैं कि मैं इस enum करते हैं: पहला enum मैं बस यह कर सकते हैं के मूल्यों के माध्यम सेकैसे जटिल enum मूल्य स्ट्रिंग प्रतिनिधित्व प्राप्त करने के लिए
SomeType easyType = SomeType.Val1 | SomeType.Val2;
SomeType complexType = SomeType.All;
अगर मैं लूप करना चाहते हैं:
[Flags]
public enum SomeType
{
Val1 = 0,
Val2 = 1,
Val3 = 2,
Val4 = 4,
Val5 = 8,
Val6 = 16,
All = Val1 | Val2 | Val3 | Val4 | Val5 | Val6
}
और कुछ चर कार्य करें:
foreach(string s in easyType.ToString().Split(','))
{ ... }
हालांकि, जब मैं 'complexType' मैं मूल्य प्राप्त 'सभी', निश्चित रूप से है जो करने के लिए एक ही दृष्टिकोण लागू करने का प्रयास मान्य क्योंकि यह enum के संभावित मूल्यों में से एक भी है। लेकिन, क्या वास्तव में यह देखने का एक साफ तरीका है कि कुछ प्रकार क्या मूल्य हैं। सभी का निर्माण? मैं जानता हूँ कि मैं उस तरह सभी मूल्यों के माध्यम से एक मैनुअल पाश बना सकता है:
if(complexType.HasFlag(ManualType.Val1) && ...
मुझे लगता है कि समस्या यह है कि आप इस enum के अंदर नहीं रखना चाहिए 'All' है। चूंकि आप इसे '[ध्वज]' चिह्नित करते हैं, इसलिए इसमें कोई संयोजन रखना बुरा विचार है। –
तो मैं (और अन्य) हमेशा जब कुछ के लिए SomeType का उपयोग कर enums के समुचित संयोजन का उपयोग करने के लिए याद करने के लिए होगा। – IamDeveloper
क्या आप व्यर्थ 'कुछ प्रकार' के बजाय मूल enum पोस्ट कर सकते हैं? –