فئة System::Object

Object class

الفئة الأساسية التي تتيح استخدام الأساليب المتوفرة لفئة System.Object في C#. يجب أن ترث جميع الفئات غير التافهة المستخدمة في البيئة المترجمة منها.

class Object

الطرق

طريقةالوصف
virtual Equals(ptr)يقارن الكائنات باستخدام دلالة Object.Equals في C#.
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() constنظير طريقة Object.GetHashCode() في C#. يتيح تجزئة الكائنات المخصصة.
virtual GetType() constيحصل على النوع الفعلي للكائن. نظير استدعاء System.Object.GetType() في C#.
virtual Is(const TypeInfo&) constتحقق مما إذا كان الكائن يمثل مثيلًا للنوع الموصوف بـ targetType. نظير عامل ‘is’ في C#.
Lock()ينفّذ قفل عبارة lock() في C#. استدعِه مباشرة أو استخدم كائن الحارس LockContext.
virtual MemberwiseClone() constنظير طريقة Object.MemberwiseClone() في C#. يتيح استنساخ الأنواع المخصصة.
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)يقارن مرجعيًا كائن النوع القيمي مع nullptr.
ReferenceEquals(String const&, std::nullptr_t)تخصيص لـ Object::ReferenceEquals لحالة السلسلة و nullptr.
ReferenceEquals(String const&, String const&)تخصيص لـ Object::ReferenceEquals لحالة السلاسل.
RemovedSharedRefs(int)يقلل عداد الإشارة المشتركة بالقيمة المحددة.
virtual SetTemplateWeakPtr(uint32_t)عيّن معامل القالب الـ n’th إلى مؤشر ضعيف (بدلاً من المشترك). يسمح بتبديل المؤشرات في الحاويات إلى الوضع الضعيف.
SharedCount() constيحصل على القيمة الحالية لعداد الإشارة المشتركة.
SharedRefAdded()يزيد عداد الإشارة المشتركة. لا ينبغي استدعاؤه مباشرة؛ بدلاً من ذلك، استخدم المؤشرات الذكية أو ThisProtector.
SharedRefRemovedSafe()يقلل ويعيد قيمة عداد الإشارة المشتركة. لا ينبغي استدعاؤه مباشرة؛ بدلاً من ذلك، استخدم المؤشرات الذكية أو ThisProtector.
virtual ToString() constنظير طريقة C# 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 إلى كائنات مُخصَّصة على المكدس محظور تمامًا.

انظر أيضًا