मैं IComparable और IComparer का उपयोग कर रहा हूँ
छात्र वर्ग में: [आईसीओम्पेरेबल] < / Strong> <पूर्व> तुलना करें (छात्र एक्स, छात्र y) मैं नाम पर छात्रों की सूची को छँटा रहा हूँ। अगर मैं छात्र- वर्ग, मुझे त्रुटियां मिल रही हैं। मुझे आश्चर्य है कि मेरे मुख्य (छात्र) वर्ग में मुझे तुलना करें () क्यों चाहिए, और यह क्या करता है? छात्र कक्षा में पहली बार छात्र संख्या की तुलना करने के लिए मुझे क्या आवश्यकता है और उसके बाद मुझे StudentCompareName वर्ग में नाम पर सॉर्ट करने की इजाजत है? मैं IComparable और एक IComparer का उपयोग कर रहा हूँ यह भ्रम का स्रोत है आपको केवल एक की आवश्यकता है - और वे समान कक्षा में शायद ही कभी कार्यान्वित किए गए हों। सार्वजनिक इंट कोटाओ (विद्यार्थी छात्र टोकूपायर) {यदि (यह। संख्या & amp; विद्यार्थी; कॉमपैरे। नंबर) रिटर्न 1; Else यदि (this.Number & gt; studentToCompare.Number) वापसी -1; और वापसी 0; } StudentcompareName वर्ग में: [IComparer]
सार्वजनिक इंट की तुलना करें (छात्र एक्स, छात्र y) {वापसी स्ट्रिंग .कंप्रेयर (एक्स। नेम, y.Name); }
आईसीओम्परबल & lt; T & gt; को एक प्राकृतिक एक वस्तु और दूसरे के बीच तुलना जैसा कि
विद्यार्थी की तरह कुछ है, जो शायद समझ नहीं पा रहा है, क्योंकि छात्रों की तुलना करने के कई तरीके हैं दूसरी ओर,
डेटटाइम जैसे कुछ के लिए यह सही समझ है।
IComparer & lt; T & gt; एक कस्टम तुलना होने के लिए है - इसलिए यह बनाता है उदाहरण के लिए, नामों की तुलना करके
छात्रनाम कॉम्पपरर का अर्थ है
IComparer & lt; छात्र & gt; ।
No comments:
Post a Comment