View Full Version : سوال: طرح کلی enum ها
drsina
یک شنبه 22 دی 1392, 23:45 عصر
سلام .
اگر یه متغیر enum داشته باشیم ، مقدار گرفتن حافظه توسط این متغیر به چه صورته ؟! (یعنی چند بایته )
sagggad
یک شنبه 22 دی 1392, 23:50 عصر
فک کنم بستگی به مقادیری داره که دخلش قرار بدی...
drsina
یک شنبه 22 دی 1392, 23:55 عصر
فکر نکنم . آخه مسئله اینجاست که هر چیزی نمیشه توش قرار داد .
drsina
دوشنبه 23 دی 1392, 00:10 صبح
من دقیقا منظورشو از distinct یعنی متمایز ، نمی فهمم :
The enum keyword is used to declare an enumeration, a distinct type that consists of a set of named constants called the enumerator list.
An enumeration type (also named an enumeration or an enum) provides an efficient way to define a set of named integral constants that may be assigned to a variable.
http://msdn.microsoft.com/en-us/library/cc138362.aspx
http://msdn.microsoft.com/en-us/library/sbbt4032.aspx
Mousavmousab
دوشنبه 23 دی 1392, 12:13 عصر
سلام
توی enum هیچ وقت مقادیر تکراری نیست دیگه درسته ؟ می خواد بگه یک نوعی که شامل تعدادی عناصر که "تکراری نیست".
من این طور متوجه شدم.
Mousavmousab
دوشنبه 23 دی 1392, 12:21 عصر
یادم رفت بگم : اندازه آن چقدر است؟ بستگی داره به صورت پیش فرض int است. هر عناصر برابر یک عدد و از 0 شروع میشه:
مثلاٌ من یک مثال می زنم که برای تعیین سطح کاربران استفاده میشه
public partial class Form1 : Form
{
enum UserLevel { Admin, Level1, Level2, Level3 }
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
UserLevel u = UserLevel.Admin;
if (u == UserLevel.Admin)
{
// let the program to login and dive into admin section
}
else if (u == UserLevel.Level1)
{
// let the user to do something as level1
}
else
{
// send message to user which it is not a Registered user.
}
}
از آنجایی که ما می دونیم تعداد سطوح ما تا short کفایت می کنه ، می تونیم به این صورت بنویسیم تا نوعش بشه Short و زیاد فضا اشغال نکنه
public partial class Form1 : Form
{
enum UserLevel:short { Admin, Level1, Level2, Level3 }
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
UserLevel u = UserLevel.Admin;
if (u == UserLevel.Admin)
{
// let the program to login and dive into admin section
}
else if (u == UserLevel.Level1)
{
// let the user to do something as level1
}
else
{
// send message to user which it is not a Registered user.
}
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.