c# - Default for delegate dictionary pattern -


इस कोड पर विचार करें:

  स्विच (संख्या) {मामला 1: संख्या = (int ) SmsStatusEnum.Sent; टूटना; मामला 2: संख्या = (इंट) एसएमएसस्टैटुसएन्नम। डिलीव्हर्ड; टूटना; मामले 3: संख्या = (इंट) SmsStatusEnum.Failed; टूटना; डिफ़ॉल्ट: संख्या = (पूर्णांक) SmsStatusEnum.Failed; टूटना; } वापसी संख्या;  

मेरे पास एक स्विच केस है जो डिफ़ॉल्ट है। इसलिए यदि संख्या नहीं है तो 1,2 या 3 परिणाम विफल । इसलिए मैं कोड को डेलिगेट करने के लिए कोड को रूपांतरित करता हूं:

  var स्थिति = नया शब्दकोश & lt; int, फ़ंक्स & lt; SmsStatusEnum & gt; & gt; {{1, () = & gt; SmsStatusEnum.Sent}, {2, () = & gt; SmsStatusEnum.Delivered}, {3, () = & gt; SmsStatusEnum.Failed},};  

प्रतिनिधि प्रतिनिधि पैटर्न के लिए मैं कैसे डिफ़ॉल्ट सेट कर सकता हूं?

डिफ़ॉल्ट सेट करने के लिए आप फ़ंक्शन में डिक्शनरी लपेटते हैं

  SmsStatusEnum GetStatus (int मान) {Func & lt; SmsStatusEnum & gt; समारोह; यदि (! स्थितियों। ट्रिगेट वैल्यू (मान, बाहर फ़ंक्शन)) {// डिफ़ॉल्ट मान वापसी SmsStatusEnum.Failed; } वापसी फ़ेन्क (); }  

इस मामले में हालांकि मुझे बिल्कुल नहीं पता है कि आप एक Func & lt; SmsStatusEnum & gt; क्यों संग्रहीत कर रहे हैं क्या वास्तविक कोड में Func & lt; SmsStatusEnum & gt; कार्यान्वयन में गणना शामिल है? यदि ऐसा है तो यह वास्तव में एक अच्छा पैटर्न है यदि नहीं, तो आप बस एक डिक्शनरी & lt; int, SmsStatusEnum & gt; सीधे

पर विचार करना चाह सकते हैं।

Comments

Popular posts from this blog

ios - How do I use CFArrayRef in Swift? -

eclipse plugin - Run java code error: Workspace is closed -

c - Error on building source code in VC 6 -