ساختارها در زبان سی شارپ – آموزش زبان سی شارپ

csharp structures 4523 تصویر

ساختارها در زبان سی شارپ

ساختارها مشابه آرایه ها هستند با این تفاوت که در آرایه ها فقط می توانید یک نوع داده داشته باشید. یعنی همه عناصر آرایه باید از این نوع باشند. اما ساختارها اجازه می دهد تا انواع داده مختلف را در یک مجموعه قرار دهیم.

از ساختار برای نشان دادن یک رکورد استفاده می شود. فرض کنید می خواهید کتاب های خود را در یک کتابخانه نگه داری کنید. ممکن است بخواهد اطلاعات زیر را در مورد هر کتاب ذخیره کنید:

  • عنوان (Title)
  • نویسنده (Author)
  • موضوع (Subject)
  • شناسه (Book ID)

تعریف یک ساختار در سی شارپ

برای تعریف یک ساختار باید از کلمه کلیدی struct استفاده کنید. در زیر نحوه تعریف ساختار Book را مشاهده می کنید:

struct Books {
   public string title;
   public string author;
   public string subject;
   public int book_id;
};

مثال زیر نحوه استفاده از ساختار را نشان می دهد:

using System;
struct Books {
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  
public class testStructure {
   public static void Main(string[] args) {
      Books Book1;   /* Declare Book1 of type Book */
      Books Book2;   /* Declare Book2 of type Book */
      /* book 1 specification */
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali"; 
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;
      /* book 2 specification */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject =  "Telecom Billing Tutorial";
      Book2.book_id = 6495700;
      /* print Book1 info */
      Console.WriteLine( "Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);
      /* print Book2 info */
      Console.WriteLine("Book 2 title : {0}", Book2.title);
      Console.WriteLine("Book 2 author : {0}", Book2.author);
      Console.WriteLine("Book 2 subject : {0}", Book2.subject);
      Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);       
      Console.ReadKey();
   }
}

امتحان کنید

زمانی که کد بالا توسط کامپایلر سی شارپ اجرا شود، نتیجه زیر را تولید خواهد کرد:

Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700

ویژگی ساختارها در زبان C#

در مثال بالا نحوه تعریف و استفاده از یک ساختار ساده به نام Books را مشاهده کردید. ساختار زبان C# بسیار متفاوت با ساختار زبان C++ و زبان C هستند. در زیر ویژگی های مربوط به ساختارها در زبان سی شارپ را مشاهده می کنید:

  • ساختارها می توانند متد، فیلد، ایندکسر، خاصیت، متدهای اپراتور و رویداد داشته باشند.
  • برای ساختارها می توان سازنده تعریف کرد ولی نمی توان برای آن مخرب تعریف کرد. با این حال، شما نمی توانید یک سازنده پیش فرض برای یک ساختار تعریف کنید. سازنده پیش فرض به طور خودکار تعریف می شود و نمی تواند تغییر کند.
  • ساختارها نمی توانند از ساختارها و کلاس های دیگر ارث بری کنند.
  • همچنین سایر کلاس ها هم نمی توانند از ساختار ارث بری کنند.
  • ساختارها می توانند یک یا چند اینترفیس را پیاده سازی کنند.
  • اعضای یک ساختار نمی توانند به صورت abstract ، virtual و یا protected تعریف شوند.
  • برخلاف کلاس ها، بدون استفاده از عملگر new می توان از یک ساختار نمونه سازی کرد.
  • اگر از عملگر new استفاده نشود، فیلدها بدون مقدار باقی می مانند و نمی توان از آن ها استفاده کرد تا زمانی که مقدار دهی شوند.

کلاس و ساختار

کلاس و ساختار دارای تفاوت های اساسی هستند:

  • کلاس به صورت Reference Type می باشد ولی ساختار به صورت Value Type
  • ساختارها از وراثت پشتیبانی نمی کنند
  • ساختارها نمی توانند سازنده پیش فرض داشته باشند

برای درک بهتر مبحث ساختارها، مثال قبلی را به صورت زیر تغییر داده ایم:

using System;
struct Books {
   private string title;
   private string author;
   private string subject;
   private int book_id;
   public void getValues(string t, string a, string s, int id) {
      title = t;
      author = a;
      subject = s;
      book_id = id;
   }
   public void display() {
      Console.WriteLine("Title : {0}", title);
      Console.WriteLine("Author : {0}", author);
      Console.WriteLine("Subject : {0}", subject);
      Console.WriteLine("Book_id :{0}", book_id);
   }
};  
public class testStructure {
   public static void Main(string[] args) {
      Books Book1 = new Books();   /* Declare Book1 of type Book */
      Books Book2 = new Books();   /* Declare Book2 of type Book */
      /* book 1 specification */
      Book1.getValues("C Programming",
      "Nuha Ali", "C Programming Tutorial",6495407);
      /* book 2 specification */
      Book2.getValues("Telecom Billing",
      "Zara Ali", "Telecom Billing Tutorial", 6495700);
      /* print Book1 info */
      Book1.display();
      /* print Book2 info */
      Book2.display(); 
      Console.ReadKey();
   }
}

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

Title : C Programming
Author : Nuha Ali
Subject : C Programming Tutorial
Book_id : 6495407
Title : Telecom Billing
Author : Zara Ali
Subject : Telecom Billing Tutorial
Book_id : 6495700

نوشته ساختارها در زبان سی شارپ – آموزش زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *