PDA

View Full Version : سوال: تفاوت بین struct و enum



forodo
سه شنبه 20 خرداد 1393, 15:55 عصر
سلام
این دو چه فرقی با هم دارند.

alireza_s_84
سه شنبه 20 خرداد 1393, 16:37 عصر
سلام
این دو چه فرقی با هم دارند.

Struk اشاره به یک ساختار داره. این ساختار دارای فیلدهایی میتونه باشه که خود اون فیلدها از انواع داده ای دیگه تشکیل شده باشن. مثل:
public struct Book{
public decimal price;
public string title;
public string author;
}
اشاره به ساختاری داره که یک کتاب هست.
Enum یک نوع شمارشی حساب میشه و اشاره به یک لیست از نامها داره که برای سهولت کار به جای استفاده از عدد از این نامهای منحصر به فرد استفاده میشه. مثل:
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

کاربرد:
برای Struct میشه مختصات یک شئی روی محور مختصات ر مثال زد. برای مثال میخوایم مستطیلی روی فرم ترسیم کنیم. این مستطیل دارای خصوصیاتی مثل نقطه شروع در محل x,y و نقطه پایان در محل x1,y1 و همچنین طول و ارتفاع است. میشه ساختاری رو برای این مستطیل تعریف کرد و برای ترسیم به متد مورد نظر ارسال کرد.

برای Enum هم میتونم این مثال ساده رو بزنم که شما توی برنامه میخوای افراد رو از طریق گروه جنسیت طبقه بندی کنی. گروههای ما شامل زن، مرد و یا ترانسکشوال هستن. حالا شما فکر بکن توی شرط اینطوری عمل کنی:
if Gender = 1 بر فرض مثال 1 اشاره به مرد داره. چندان قابل فهم نیست. ولی اگه از نوع شمارشی استفاده کنیم:
public enum Gender{Male,Female,transsexual}
if(Gender == Gender.Male)

اینطوری بسیار قابل فهم تر خواهد بود.