आप इस
FilterType myType = FilterType.Rigid;
String strType = myType.ToString();
की तरह एक स्ट्रिंग के रूप Enum नाम प्राप्त कर सकते हैं
हालांकि, आप ऊंट केस/हंगेरियन नोटेशन से फंस सकते हैं, लेकिन आप आसानी से इस तरह की विधि का उपयोग करके अधिक उपयोगकर्ता के अनुकूल स्ट्रिंग में परिवर्तित कर सकते हैं (सबसे सुंदर समाधान नहीं, मैं इसे अनुकूलित करने के लिए इनपुट के लिए आभारी हूं) :
Public Shared Function NormalizeCamelCase(ByVal str As String) As String
If String.IsNullOrEmpty(str) Then
Return String.Empty
End If
Dim i As Integer = 0
Dim upperCount As Integer = 0
Dim otherCount As Integer = 0
Dim normalizedString As String = str
While i < normalizedString.Length
If Char.IsUpper(normalizedString, i) Then
''Current char is Upper Case
upperCount += 1
If i > 0 AndAlso Not normalizedString(i - 1).Equals(" "c) Then
''Current char is not first and preceding char is not a space
''...insert a space, move to next char
normalizedString = normalizedString.Insert(i, " ")
i += 1
End If
ElseIf Not Char.IsLetter(normalizedString, i) Then
otherCount += 1
End If
''Move to next char
i += 1
End While
If upperCount + otherCount = str.Length Then
''String is in all caps, return original string
Return str
Else
Return normalizedString
End If
End Function
हैं कि अभी भी बहुत पर्याप्त नहीं है, तो आप देखने के लिए में कस्टम विशेषताओं जो प्रतिबिंब का उपयोग कर प्राप्त किया जा सकता है चाहते हो सकता है, ...
अच्छा दृष्टिकोण। आप इसे सभी enums के लिए एक विस्तार विधि के रूप में भी हो सकता है। –
धन्यवाद .. मेरे पास कुछ स्थिर विधियां हैं जिनका उपयोग मैं अपने वर्तमान प्रोजेक्ट पर इस तरह के enums से निपटने के लिए करता हूं।मैंने कभी विस्तार विधि का उपयोग करने के बारे में सोचा नहीं। मुझे यह कोशिश करना है कि –
यह एक अच्छा अभ्यास है ... इसे एक और विशेषता परिभाषित करना .... [System.Xml.Serialization.XmlEnum ("कठोर")] पर ... [विवरण (" कठोर ")] कठोर, ... आदि। –