मैं इस तरह कुछ करना चाहता हूँ:क्या मैं श्रृंखला तुलना करने के लिए पूर्णांक पर कोलेसे ऑपरेटर का उपयोग कर सकता हूं?
public override int CompareTo (Foo rhs)
{
return Bar.CompareTo(rhs.Bar) ??
Baz.CompareTo(rhs.Baz) ??
Fuz.CompareTo(rhs.Fuz) ?? 0;
}
यह लिखा के रूप में काम नहीं करता है; क्या यह काम करने के लिए कुछ न्यूनतम कामकाज है? असल में मैं गैर-शून्य (या श्रृंखला के अंत) तक श्रृंखला तक 0 चाहता हूं।
मैं आपके सवाल का जवाब पता नहीं है, लेकिन तीन मानों वापसी मान निर्धारित करने के लिए इस्तेमाल किया जा सकता है, तो आप अपने वर्ग की पुनः रचना पर विचार करना चाहते हो सकता है। –
@ डीजे 'तुलना टीओ सॉर्टिंग से संबंधित है; यह बहुत आम है, वास्तव में - उदाहरण के लिए, उपनाम द्वारा क्रमबद्ध करें - यदि वह वही है, तो फर्स्टनाम द्वारा क्रमबद्ध करें, फिर यदि अभी भी बराबर है, तो कुछ अद्वितीय पहचानकर्ता (उदाहरण के लिए डेटाबेस आईडी) द्वारा क्रमबद्ध करें। –
@Marc दिलचस्प, मैं इससे पहले खुलासा नहीं किया गया है। मैं देखता हूं कि तुलनात्मक आईसीओपरपेबल वर्ग का हिस्सा है। मुझे कुछ परिप्रेक्ष्य प्राप्त करने के लिए और अधिक पढ़ना होगा। धन्यवाद –