कई बार, जब उपयोगकर्ता को दिखाने के लिए संदेश जनरेट करते हैं, तो संदेश में कई ऐसी चीजें होंगी, जिनके बारे में मैं ग्राहक को सूचित करना चाहता हूं।
मैं एक उदाहरण दूंगा: ग्राहक ने 1 और ऊपर से कई मदों का चयन किया है, और हटाए जाने पर क्लिक किया है। अब मैं ग्राहक को एक पुष्टिकरण संदेश देना चाहता हूं, और मैं उन मदों की संख्या का उल्लेख करना चाहता हूं, जिन्हें उसने चुना है कि वह वस्तुओं के एक समूह का चयन करके गलती करने की संभावना को कम कर दे और जब वह केवल एक को हटाना चाहता है तो उसे हटा दें उन्हें।
एक तरीका यह है कि जेनेरिक संदेश को इस तरह बनाया जाए:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
"समस्या" यहाँ इस मामले में जहां है noofitemselected
1 है, और हम लिखने के लिए है आइटम और यह बजाय आइटम और उन्हें ।
मेरा सामान्य समाधान कुछ इस तरह होगा
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
यह वास्तव में तेजी से काफी लंबा और काफी बुरा हो जाता है यदि कोड के अंदर संख्या बहुलता के कई संदर्भ हैं, और वास्तविक संदेश को पढ़ना मुश्किल हो जाता है।
तो मेरे सवाल बस है। क्या इस तरह संदेश भेजने के कोई बेहतर तरीके हैं?
संपादित करें
मुझे लगता है कि बहुत से लोग इस मामले में बहुत त्रस्त हो गए हैं, जिनका मैंने उल्लेख किया है कि संदेश को एक संदेश बॉक्स के अंदर प्रदर्शित किया जाना चाहिए, और बस एक उत्तर दिया है कि संदेश बॉक्स का उपयोग करने से कैसे बचें, और यह सब अच्छा है ।
लेकिन याद रखें कि बहुवचन की समस्या संदेश बॉक्स के अतिरिक्त कार्यक्रम के अन्य स्थानों पर भी लागू होती है। उदाहरण के लिए, ग्रिड में चयनित लाइनों की संख्या प्रदर्शित करने वाली ग्रिड के साथ एक लेबल में बहुवचन के बारे में एक ही समस्या होगी।
तो यह मूल रूप से अधिकांश पाठों पर लागू होता है जो प्रोग्रामों से किसी तरह से आउटपुट किया जाता है, और फिर समाधान इतना सरल नहीं है कि प्रोग्राम को केवल टेक्स्ट में आउटपुट न करने के लिए बदल दें :)