اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

هذا لأن class من النوع reference type بينما struct من النوع value type 

ما الفرق بينهما؟

لنفهم الفرق نحتاج أولًا أن نفهم أنه يوجد ما يُسمى بالstack memory وال heap memory , الstack memory تمتلك مساحة أقل ولكنها أسرع في الوصول, بينما الheap memory تمتلك مساحة أكبر ولكن أبطأ في الوصول

الstruct بما أنه value type لذا يتم تخزينه في الstack, فيتم الوصول إليه بشكلٍ سريع, ولكن إن كان حجمه كبير سيتسبب ذلك بمشاكل لأن مساحة الstack محدودة وبالتالي قد يتسبب ذلك في خطأ يُسمى stack over flow يحدث عندما يتم ملأ الstack 

بينما الclass بما أنه من النوع reference type فلا يتم تخزينه في الstack وإنما يتم تخزينه في الheap ويتم تخزين عنوانه في الstack وذلك العنوان يكون مساحته صغيرة نسبيًا 4bytes , لذا يُفضل تخزين البيانات كبير الحجم في الclass حتى لا يتسبب ذلك بمشكلة stack over flow 

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...