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

ما الفرق بين كلٍ من struct و class و record في لغة c#

Ahmed Yehia2

السؤال

Recommended Posts

  • 0

يمكن تلخيص الفروق بينهم كالتالي 

  • الstruct هو من نوع value-type بمعنى أنه لا يتم تخزينه ك reference مثل الclass ولكنه   لا يمكن أن يمتلك constructor فارغ أو أن تكون أبًا لclass أخر, ويمكن إستخدامها بدون إستخدام كلمة new 
  • class هو من النوع reference type 
  • record يمتاز بأنه لا يمكن تغيير قيمة الخصائص بداخله

إذًا ماذا تستخدم؟ عندما تريد أن تستخدم هيكل لتخزين بياناتك بداخله يجب أن تسأل الأسئلة التالية حتى تستطيع الإختيار بشكلٍ صحيح

  1. هل البيانات التي أريد أن أمثلها , بشكلٍ منطقي هي تمثل قيمة؟ على سبيل المثال كالشفرة المُرفقة بالأدنى 
    struct Point
    {
        public int x, y;
        public Point(int x, int y) {
            this.x = x;
            this.y = y;
        }
    }

    في ذلك المثال نريد أن نُمثل نقطة, فلا داعي أن ننشئ لها صنف بل من الممكن أن نمثلها بstruct لأن في النهاية هي تُمثل قيمة واحدة حتى ولو كانت مُكونة من قيم أخرى

  2. هل مساحة البيانات أقل من 16 بايت؟

  3. هل البيانات في أغلب الوقت لن يتم تغييرها؟

إن كانت الإجابة على الأسئلة السابقة نعم فإذًا إستخدم struct عدا ذلك قم بالإجابة على الأسئلة التالية

  1. هل الهيكل الذي تريده سيقوم بإحتواء مجموعة من البيانات المعقدة ولكن لا يُمثل شئ مميز بذاته؟ هل البيانات التي بداخل الهيكل لن نحتاج إلى تغييرها في المستقبل

إن كانت الإجابة نعم يكون الإختيار  record عدا ذلك يكون class

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...