साथ # 7 पैटर्न मैच के लिए यह संभव तो जैसे # 7 ग का उपयोग कर स्विच बयान में पैटर्न मिलान के साथ tuples उपयोग करने के लिए है:सी एक टपल
switch (parameter)
{
case ((object, object)) tObj when tObj.Item1 == "ABC":
break;
}
मैं एक त्रुटि है कि tObj does not exist in the current context
कहते हैं मिलता है।
मैं इस की कोशिश की है और साथ ही:
switch (parameter)
{
case (object, object) tObj when tObj.Item1 == "ABC":
break;
}
यह ठीक काम करता है:
switch (parameter)
{
case MachineModel model when model.Id == "123":
break;
}
@DavidArno संपादन के लिए धन्यवाद, लेकिन 'var' का उपयोग करने में एक समस्या है। यदि 'पैरामीटर' प्रकार 'ऑब्जेक्ट' प्रकार है और स्विच स्टेटमेंट का उपयोग प्रकार की जांच के लिए भी किया जा रहा है, तो यह असफल हो जाएगा। [उदाहरण के लिए] (https://gist.github.com/WiredUK/21d1a61c01580a2fe7b055ec83b46889) – DavidG
अच्छा बिंदु। मैंने इस सवाल से माना था कि 'पैरामीटर' एक टुपल था, लेकिन यह एक बुरा धारणा हो सकती है। –
@ डेविड अर्नो मुझे लगता है कि यह लगभग निश्चित रूप से है, इसलिए मैंने आपके संपादन को tweaked नहीं किया है। बस सोचा कि यह उल्लेख करने लायक था। – DavidG