कहो मैं की तरह एक enum कुछ है को लागू करने के लिए एक enum अनुकरण करने के लिए:व्यवहार एक अंतरफलक
enum OrderStatus
{
AwaitingAuthorization,
InProduction,
AwaitingDespatch
}
मैं अपने enum यूआई में दिखाया मूल्यों को साफ़ रखने के लिए पर एक विस्तार विधि बना लिया है, तो मेरे पास है कुछ की तरह:
:
public static string ToDisplayString(this OrderStatus status)
{
switch (status)
{
case Status.AwaitingAuthorization:
return "Awaiting Authorization";
case Status.InProduction:
return "Item in Production";
... etc
}
}
उत्कृष्ट पोस्ट here से प्रेरित होकर, मैं एक विस्तार विधि के साथ एक SelectList
करने के लिए मेरे enums बाध्य करने के लिए चाहते हैं
हालांकि, यूआई में DisplayString मानों का उपयोग कर ड्रॉप डाउन के साथ मैं बिल्कुल भी काम करने के लिए
: where TEnum has extension ToDisplayString
जाहिर है इस में से कोई भी जा रहा है की तर्ज पर एक बाधा को जोड़ने की आवश्यकता होगी वर्तमान दृष्टिकोण, जब तक कि कुछ चालाक चाल नहीं है मुझे पता नहीं है।
क्या किसी के पास इस बारे में कोई विचार है कि मैं इस तरह कुछ कैसे कार्यान्वित कर सकता हूं? इस तरह आप Enum पर ही तरीकों में से एक गुच्छा मिलता है where TEnum : System.Enum
, और प्रकार सुरक्षा खोना:
मैं इस कार्यान्वयन का बहुत उपयोग करता हूं। –
वास्तव में अच्छा, धन्यवाद –
शानदार। छोटी चेतावनी: आप डिफ़ॉल्ट मानों का उपयोग नहीं कर सकते हैं, या आपको " 'के लिए डिफ़ॉल्ट पैरामीटर मान" संकलन-समय स्थिर होना चाहिए। –
as9876