C#में, स्ट्रिंग तुलना कभी -कभी अप्रत्याशित परिणाम उत्पन्न करती है। एक सामान्य सवाल यह है कि क्या
string.equals () विधि और
== समान साइन ऑपरेटर बिल्कुल वैसा ही व्यवहार करते हैं।
निम्नलिखित कोड स्निपेट पर विचार करें:
स्ट्रिंग s = "श्रेणी";
TreeViewItem tvi = new TreeViewItem ();
tvi.header = "श्रेणी";
Console.writeline (s == tvi.header);
कंसोल।
Console.writeline (s == tvi.header.tostring ()) // true
यह सवाल उठाता है: ये दोनों तुलनात्मक तरीके अलग -अलग परिणाम क्यों पैदा करते हैं?
string s = "Category";
TreeViewItem tvi = new TreeViewItem();
tvi.Header = "Category";
Console.WriteLine(s == tvi.Header); // false
Console.WriteLine(s.Equals(tvi.Header)); // true
Console.WriteLine(s == tvi.Header.ToString()); // true
और == के बीच मुख्य अंतर
string.equals ()
और ==
ऑपरेटरों के बीच दो मौलिक अंतर हैं: ]
]
]
]
इन अंतरों को चित्रित करने के लिए, निम्नलिखित कोड पर विचार करें:
] सही तुलना प्राप्त करने के लिए, ऑब्जेक्ट को स्पष्ट रूप से उपयुक्त प्रकार में परिवर्तित किया जाना चाहिए (इस मामले में स्ट्रिंग
)।
स्ट्रिंग xs = (स्ट्रिंग) x;
स्ट्रिंग ys = (स्ट्रिंग) y;
if (xs == ys) // true
निष्कर्ष के तौर पर
] विश्वसनीय और सुसंगत स्ट्रिंग तुलनाओं को सुनिश्चित करने के लिए,
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3