System::Object क्लास

Object class

C# में System.Object क्लास के उपलब्ध मेथड्स का उपयोग सक्षम करने वाली बेस क्लास। ट्रांसलेटेड एनवायरनमेंट में उपयोग होने वाली सभी नॉन-ट्रिवियल क्लासेज़ को इसे इनहेरिट करना चाहिए।

class Object

विधियाँ

विधिविवरण
virtual Equals(ptr)ऑब्जेक्ट्स की तुलना C# Object.Equals सेमांटिक्स का उपयोग करके करता है।
static Equals(T1 const&, T2 const&)रेफ़रेंस टाइप ऑब्जेक्ट्स की तुलना C# शैली में करता है।
static Equals(T1 const&, T2 const&)वैल्यू टाइप ऑब्जेक्ट्स की तुलना C# शैली में करता है।
static Equals(float const&, float const&)C#-स्टाइल फ्लोटिंग पॉइंट तुलना को एम्यूलेट करता है जहाँ दो NaN को बराबर माना जाता है, भले ही IEC 60559:1989 के अनुसार NaN किसी भी वैल्यू के बराबर नहीं होता, जिसमें NaN भी शामिल है।
static Equals(double const&, double const&)C#-स्टाइल फ्लोटिंग पॉइंट तुलना को एम्यूलेट करता है जहाँ दो NaN को बराबर माना जाता है, भले ही IEC 60559:1989 के अनुसार NaN किसी भी वैल्यू के बराबर नहीं होता, जिसमें NaN भी शामिल है।
virtual FastCast(const Details::FastRttiBase&, void **) constकेवल आंतरिक उपयोग के लिए।
GetCounter()ऑब्जेक्ट से जुड़े रेफ़रेंस काउंटर डेटा स्ट्रक्चर को प्राप्त करता है।
virtual GetHashCode() constC# Object.GetHashCode() मेथड का एनालॉग। कस्टम ऑब्जेक्ट्स की हैशिंग को सक्षम बनाता है।
virtual GetType() constऑब्जेक्ट का वास्तविक टाइप प्राप्त करता है। C# System.Object.GetType() कॉल का एनालॉग।
virtual Is(const TypeInfo&) constजाँचें कि ऑब्जेक्ट targetType द्वारा वर्णित टाइप की इंस्टेंस है या नहीं। C# ‘is’ ऑपरेटर का एनालॉग।
Lock()C# lock() स्टेटमेंट लॉकिंग को इम्प्लीमेंट करता है। सीधे कॉल करें या LockContext सेंट्री ऑब्जेक्ट का उपयोग करें।
virtual MemberwiseClone() constC# Object.MemberwiseClone() मेथड का एनालॉग। कस्टम टाइप्स की क्लोनिंग को सक्षम बनाता है।
Object()ऑब्जेक्ट बनाता है। सभी आंतरिक डेटा स्ट्रक्चर्स को इनिशियलाइज़ करता है।
Object(Object const&)कॉपी कन्स्ट्रक्टर। वास्तव में कुछ भी कॉपी नहीं करता, बस नया ऑब्जेक्ट इनिशियलाइज़ करता है और सबक्लासेज़ की कॉपी कंस्ट्रक्शन को सक्षम बनाता है।
operator=(Object const&)असाइनमेंट ऑपरेटर। वास्तव में कुछ भी कॉपी नहीं करता, बस नया ऑब्जेक्ट इनिशियलाइज़ करता है और सबक्लासेज़ की कॉपी कंस्ट्रक्शन को सक्षम बनाता है।
static ReferenceEquals(ptr const&, ptr const&)ऑब्जेक्ट्स की तुलना रेफ़रेंस द्वारा करता है।
static ReferenceEquals(T const&, T const&)ऑब्जेक्ट्स की तुलना रेफ़रेंस द्वारा करता है।
static ReferenceEquals(T const&, std::nullptr_t)Reference-की तुलना मान प्रकार की वस्तु से nullptr के साथ करता है।
ReferenceEquals(String const&, std::nullptr_t)स्ट्रिंग और nullptr के मामले के लिए Object::ReferenceEquals का विशिष्टीकरण।
ReferenceEquals(String const&, String const&)स्ट्रिंग्स के मामले के लिए Object::ReferenceEquals का विशिष्टीकरण।
RemovedSharedRefs(int)निर्दिष्ट मान द्वारा साझा रेफ़रेंस काउंट को घटाता है।
virtual SetTemplateWeakPtr(uint32_t)n’th टेम्पलेट आर्ग्युमेंट को एक weak पॉइंटर सेट करें (shared के बजाय)। कंटेनरों में पॉइंटर्स को weak मोड में स्विच करने की अनुमति देता है।
SharedCount() constसाझा रेफ़रेंस काउंटर का वर्तमान मान प्राप्त करता है।
SharedRefAdded()साझा रेफ़रेंस काउंट को बढ़ाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें।
SharedRefRemovedSafe()साझा रेफ़रेंस काउंट को घटाता है और लौटाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें।
virtual ToString() constC# के Object.ToString() मेथड का समानार्थी। कस्टम वस्तुओं को स्ट्रिंग में बदलने में सक्षम बनाता है।
static Type()C# के typeof(System.Object) निर्माण को लागू करता है।
Unlock()C# के lock() स्टेटमेंट को अनलॉक करने को लागू करता है। सीधे कॉल करें या LockContext सेंट्री ऑब्जेक्ट का उपयोग करें।
WeakRefAdded()वीक रेफ़रेंस काउंट को बढ़ाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें।
WeakRefRemoved()वीक रेफ़रेंस काउंट को घटाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें।
virtual ~Object()ऑब्जेक्ट को नष्ट करता है। सभी आंतरिक डेटा संरचनाओं को मुक्त करता है।

Typedefs

टाइपडिफ़विवरण
ptrस्मार्ट पॉइंटर प्रकार के लिए उपनाम।

टिप्पणियाँ

C# के System.Object क्लास में उपलब्ध मेथड्स के साथ-साथ, यह अनूदित कोड पर्यावरण के लिए विशिष्ट कुछ अवधारणाओं का समर्थन भी सक्षम करता है। इसमें स्मार्ट पॉइंटर क्लासों (System::SmartPtr, System::WeakPtr, System::DynamicWeakPtr) द्वारा उपयोग किया जाने वाला रेफ़रेंस काउंटिंग और मेमोरी प्रबंधन, डिबग आदि से संबंधित अन्य सेवाएँ शामिल हैं।

प्रत्येक Object में दो रेफ़रेंस काउंटर होते हैं: साझा रेफ़रेंस काउंटर और वीक रेफ़रेंस काउंटर। वीक रेफ़रेंस काउंटर हमेशा अलग डेटा संरचना में संग्रहीत रहता है, न कि स्वयं Object में, जिससे वीक पॉइंटर्स को संदर्भित ऑब्जेक्ट के जीवनकाल से अधिक समय तक रहने की अनुमति मिलती है। स्मार्ट रेफ़रेंस काउंटर या तो ऑब्जेक्ट में ही या उसी अलग संरचना में संग्रहीत रहता है, यह ENABLE_EXTERNAL_REFCOUNT मैक्रो की स्थिति पर निर्भर करता है। डिफ़ॉल्ट रूप से, यह डिबग बिल्ड्स में सक्षम और रिलीज़ बिल्ड्स में अक्षम रहता है। यदि स्मार्ट पॉइंटर काउंटर ऑब्जेक्ट में ही संग्रहीत है, तो अलग डेटा संरचना केवल तब बनाई जाती है जब वीक पॉइंटर्स ऑब्जेक्ट के लिए मौजूद हों। अन्यथा, यह ऑब्जेक्ट के साथ ही बनाई जाती है।

सभी स्मार्ट पॉइंटर्स इन दो रेफ़रेंस काउंटरों का उपयोग करते हैं और समान एवं एकमात्र स्वामित्व समूह में योगदान देते हैं।

यदि Object का उपवर्ग स्टैक पर बनाया जाता है, तो उसके लिए कोई स्मार्ट पॉइंटर नहीं बनाया जा सकता, अन्यथा स्टैक डिलीशन समस्या उत्पन्न होती है।

यह प्रकार या तो स्टैक में वैल्यू टाइप के रूप में या हीप में System::MakeObject() फ़ंक्शन का उपयोग करके आवंटित किया जा सकता है। एक बार ऑब्जेक्ट आवंटित हो जाने के बाद, इन दो उपयोग मामलों को कभी मिलाएँ नहीं: स्टैक-आवंटित ऑब्जेक्ट्स पर SmartPtr पॉइंटर्स रखना सख्ती से प्रतिबंधित है।

संबंधित देखें