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
Post a Comment