मैं आपके चार बूलियन को चार बिट्स के रूप में मानता हूं, इसलिए 0 और 15 के बीच एक पूर्णांक के रूप में। मैं 16 तत्वों के साथ एक सरणी बनाउंगा, और सरणी के प्रत्येक तत्व में फ़ंक्शन पॉइंटर संग्रहीत करूंगा। हर बार जब आपको ऐसा करने की ज़रूरत होती है, तो मैं बूलियन को थोड़ा पैटर्न में मूल्यांकन करता हूं, int में परिवर्तित करता हूं, और सरणी के उस इंडेक्स में संग्रहीत विधि को कॉल करता हूं।
मुझे पता है कि आप PHP के बारे में पूछ रहे हैं, जो मुझे डर है, मुझे नहीं पता। सी # में, आप ऐसा कुछ कर सकते हैं:
static class Multiplexer
{
public static string Multiplex(bool a, bool b, bool c, bool d)
{
var i = 0;
i |= (a ? 1 : 0) << 3;
i |= (b ? 1 : 0) << 2;
i |= (c ? 1 : 0) << 1;
i |= (d ? 1 : 0);
return _functions[i]();
}
private static Func<string>[] _functions = new Func<string>[] {
() => { return "pie";},
() => { return "index 1"; },
() => { return DateTime.Now.ToString(); },
() => { return "pie";},
() => { return "index 1"; },
() => { return DateTime.Now.ToString(); },
() => { return Assembly.GetExecutingAssembly().FullName; },
() => { return ""; },
() => { return "pie";},
() => { return "index 1"; },
() => { return DateTime.Now.ToString(); },
() => { return "pie";},
() => { return "index 1"; },
() => { return DateTime.Now.ToString(); },
() => { return Assembly.GetExecutingAssembly().FullName; },
() => { return ""; }};
}
कम-कथन का उपयोग करें। गंभीरता से, यह सवाल बहुत अस्पष्ट है –
अच्छी तरह से स्विच का उपयोग न करें, कृपया। –
मुझे नहीं लगता कि 'और' यहां काम करेगा (स्विच के अंदर)। '.' का प्रयोग करें? http: // codepad।संगठन/X4fIQsSz – Dogbert