Latest web development tutorials

C # هيكل (البنية)

في C #، وهيكل هو نوع قيمة هياكل البيانات. فإنه يمكن متغير واحد يمكن تخزين البيانات المتعلقة أنواع مختلفة من البيانات. يستخدم الكلمةالبنية لإنشاء بنية.

ويستخدم هيكل لتمثيل رقما قياسيا. افترض أنك تريد أن تتبع كتب المكتبة الديناميكية. قد تحتاج إلى تتبع كل كتاب من السمات التالية:

  • لقب
  • مؤلف
  • موضوع
  • معرف كتاب

هيكل تعريف

لتحديد هيكل، يجب عليك استخدام عبارة البنية. بيان لبنية لبرنامج يحدد نوع البيانات الجديدة مع أكثر من عضو واحد من.

على سبيل المثال، يمكن أن تقوم بتعريف بنية بطريقة الكتاب التالية:

البنية كتب
{
   عنوان سلسلة العام؛
   مؤلف سلسلة العام؛
   موضوع سلسلة العام؛
   book_id كثافة الجمهور؛
}؛  

يوضح البرنامج التالي استخدام هيكل:

باستخدام نظام.
     
البنية كتب
{
   عنوان سلسلة العام؛
   مؤلف سلسلة العام؛
   موضوع سلسلة العام؛
   book_id كثافة الجمهور؛
}؛  

الطبقة العامة testStructure
{
   الجمهور الرئيسي خالية ثابت (سلسلة [] وسائط)
   {

      كتب BOOK1؛ / * إعلان BOOK1، نوع الكتاب * /
      كتب BOOK2؛ / * إعلان BOOK2، نوع الكتاب * /

      / * كتاب (1) تفصيل * /
      Book1.title = "C برمجة".
      Book1.author = "نهى علي". 
      Book1.subject = "C برمجة دروس".
      Book1.book_id = 6495407؛

      / * كتاب (2) وصف تفصيلي * /
      Book2.title = "الفواتير للاتصالات".
      Book2.author = "زارا علي".
      Book2.subject = "دروس الفواتير للاتصالات".
      Book2.book_id = 6495700؛

      / * طباعة BOOK1 المعلومات * /
      Console.WriteLine ( "كتاب (1) لقب: {0}"، Book1.title)؛
      Console.WriteLine ( "الكتاب 1 الكاتب: {0}"، Book1.author)؛
      Console.WriteLine ( "الكتاب 1 الموضوع: {0}"، Book1.subject)؛
      Console.WriteLine ( "الكتاب 1 book_id: {0}"، Book1.book_id)؛

      / * طباعة BOOK2 المعلومات * /
      Console.WriteLine ( "كتاب 2 اللقب: {0}"، Book2.title)؛
      Console.WriteLine ( "كتاب 2 المؤلف: {0}"، Book2.author)؛
      Console.WriteLine ( "كتاب (2) الموضوع: {0}"، Book2.subject)؛
      Console.WriteLine ( "كتاب 2 book_id: {0}"، Book2.book_id)؛       

      Console.ReadKey ()؛

   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

كتاب (1) العنوان: C برمجة
كتاب (1) المؤلف: نهى علي
كتاب (1) الموضوع: C برمجة دروس
كتاب (1) book_id: 6495407
كتاب (2) عنوان: الفواتير للاتصالات
كتاب 2 المؤلف: زارا علي
كتاب (2) الموضوع: الاتصالات دروس الفواتير
كتاب 2 book_id: 6495700

يتميز C # هيكل

كنت قد استخدمت هيكل بسيط يسمى الكتب. هياكل مختلفة في C # و الهيكل التقليدي للC أو C ++. C # في خصائص هيكل:

  • قد يكون لها طرق والحقول، والفهارس، والخصائص والمشغلين وأساليب وأحداث هيكل.
  • هيكل يمكن تعريف منشئ، ولكن لا يمكن تحديد المدمر. ومع ذلك، لا يمكن تعريف المنشئ الافتراضي للهيكل. يتم تعريف المنشئ الافتراضي تلقائيا ولا يمكن تغييرها.
  • وخلافا للفئة، هيكل لا يمكن أن ترث من الهياكل أو الفئات الأخرى.
  • هيكل لا يمكن أن تكون بمثابة أساس لبنية أخرى أو فئة.
  • هيكل يمكن تنفيذ واحد أو أكثر من الواجهات.
  • عضو بنية لا يمكن أن توصف بأنها مجردة، الظاهري أو محمية.
  • عند إنشاء كائن تكوينباستخدام مشغل جديد،فإنه سيتم استدعاء منشئ المناسب لإنشاء بنية. وخلافا للفئة، يمكن لهياكل عدم استخدام مشغل جديد ليكون مثيل.
  • إذا كنت لا تستخدم مشغل جديد، إلا بعد تهيئة كافة الحقول، كان الحقل تعيين الوحيد، وكان الهدف فقط للاستخدام.

الطبقة مقابل هيكل

الطبقات والهياكل والاختلافات الأساسية التالية:

  • الطبقات هي أنواع المراجع، وهيكل هو نوع القيمة.
  • هيكل لا يدعم الميراث.
  • هيكل لا يمكن أن يعلن منشئ افتراضي.

للاطلاع على المناقشة المذكورة أعلاه، دعونا إعادة كتابة المثال السابق:

باستخدام نظام.
     
البنية كتب
{
   عنوان سلسلة الخاص؛
   مؤلف سلسلة الخاص؛
   خاص موضوع السلسلة؛
   book_id كثافة العمليات الخاصة.
   getValues ​​الفراغ الجمهور (ر سلسلة، سلسلة لذلك، سلسلة الصورة، الباحث معرف)
   {
      عنوان = ر؛
      المؤلف = أ.
      = تخضع الصورة.
      book_id = معرف.
   }
   عرض باطلة العامة ()
   {
      Console.WriteLine ( "العنوان: {0}"، العنوان).
      Console.WriteLine ( "الكاتب: {0}"، مؤلف)؛
      Console.WriteLine ( "الموضوع: {0}"، الموضوع).
      Console.WriteLine ( "Book_id: {0}"، book_id)؛
   }

}؛  

الطبقة العامة testStructure
{
   الجمهور الرئيسي خالية ثابت (سلسلة [] وسائط)
   {

      كتب BOOK1 = الكتب الجديدة ()؛ / * إعلان BOOK1، نوع الكتاب * /
      كتب BOOK2 = الكتب الجديدة ()؛ / * إعلان BOOK2، نوع الكتاب * /

      / * كتاب (1) تفصيل * /
      Book1.getValues ​​( "C برمجة"،
      "نهى علي"، "C برمجة دروس"، 6495407).

      / * كتاب (2) وصف تفصيلي * /
      Book2.getValues ​​( "الفواتير للاتصالات"،
      "زارا علي"، "الاتصالات دروس الفواتير"، 6495700).

      / * طباعة BOOK1 المعلومات * /
      Book1.display ()؛

      / * طباعة BOOK2 المعلومات * /
      Book2.display ()؛ 

      Console.ReadKey ()؛

   }
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

العنوان: C برمجة
الكاتب: نهى علي
الموضوع: C برمجة دروس
Book_id: 6495407
العنوان: الفواتير للاتصالات
الكاتب: زارا علي
الموضوع: الاتصالات دروس الفواتير
Book_id: 6495700