PDA

View Full Version : مبتدی: چند تعریف و سفارشی کردن محیط



mg_mahyar
دوشنبه 24 مرداد 1390, 16:34 عصر
سلام
ممنون میشم به سوالاتم جواب بدین.
1-اولا enum چیه؟ من چند تا تمرین دارم که با اون حل شده. ظاهرا متغییر شمارشی هست. ولی چرا از int یا uint استفاده نشده؟ اصلا کاربردش کجاست و تعرفی کتابیش چی میتونه باشه؟
2-تابع استاتیک و غیر استاتیک غیر از نوع تعریف و فراخوانی و محدوده استفاده چه فرقی با هم دارن؟ مثلا من متدی برای محاسبه هش md5 دارم مینویسم . و اون رو داخل کلاسی میزارم. حالا متندش استاتیک باشه یا غیر استاتیک
3-یه سوال دیگم داشتم میخوام کنار کدم شماهر سطر رو بنویسه.
4-ایا امکانی هست که یه بخشی از کد رو به حالات منو در بیارم؟ مثلا وقتی یک کلاس مینویسیم کنارش یک مربع میاد که میشه باز و بسته کرد . میخوام مثلا منم برای 50تا دستور مشابه که کلاس و این حرفا نداره یه مربع بزارم. کنارش و بتونم جمعش کنم.
ممنون ازتون

morteza271
دوشنبه 24 مرداد 1390, 16:43 عصر
در مورد دو سوال اولتون به نظرم اگه یه خورده جستجو کنید متوجه میشید چیز خاصی نیست!
در مورد 3 : از منوی Tools گزینه Options و سپس در قسمت Text Editor و زبان مورد نظرتون یه گزینه هست به نام Line Numbers اونو تیک بزنید شماره میزنه!
در مورد 4 :
اینطوری :
#region Test
// Your Code.
// Your Code.
// Your Code.
#endregion
موفق باشید

Reza_Yarahmadi
دوشنبه 24 مرداد 1390, 17:30 عصر
1-اولا enum چیه؟ من چند تا تمرین دارم که با اون حل شده. ظاهرا متغییر شمارشی هست. ولی چرا از int یا uint استفاده نشده؟ اصلا کاربردش کجاست و تعرفی کتابیش چی میتونه باشه؟
تعریف کتابیش رو نمیدونم (میتونید از کتابهای مختلف اونو پیدا کنید) ولی در مورد کاربردش در مواقعی که برای یک متغیر کاربر فقط مجاز به انتخاب چند مقدار خاص است مورد استفاده قرار میگیره ، برای مثال فرض کنید نیاز دارید نام ماه جاری رو توی یک متغیر داشته باشید حالا به جای اینکه یک متغیر int تعریف کنید و شماره ماه رو توی اون نگه دارید یک enum بصورت زیر تعریف میکنید و هر جای برنامه که نیاز بود از این enum استفاده میکنید. این کار باعث بالا رفتن خانایی برنامه میشه
public enum MyEnum
{
January, February, March, April, ....
}


MyEnum yourVariable = MyEnum.March;
از نظر تخصیص حافظه هم enum به تعداد بیتی که میشه اون تعداد مقدار رو پوشش بده حافظه مصرف میکنه مثلا برای نام ماه ها با 4 بیت میتونه همه ماه ها(12 ماه) رو پوشش بده.
مواقعی هم که کاربر از بین انتخابهای خاص میتونه همزمان چند آیتم رو انتخاب کنه از این روش استفاده میشه
public enum MyEnum
{
Value1 = 1, Value2 = 2, Value3 = 4, Value4 = 8
}


MyEnum yourVariable = MyEnum.Value2 | MyEnum.Value4;
توی این مثال مقدار عددی yourVariable برابر با 10 میشه.


2-تابع استاتیک و غیر استاتیک غیر از نوع تعریف و فراخوانی و محدوده استفاده چه فرقی با هم دارن؟ مثلا من متدی برای محاسبه هش md5 دارم مینویسم . و اون رو داخل کلاسی میزارم. حالا متندش استاتیک باشه یا غیر استاتیک
مواقعی که به ازا هر آبجکت ساخته شده از کلاس بخواید یک متد خاص رو صدا بزنید و اجرای این متد به شئ ساخته شده وابسته باشه بصورت غیر استاتیک باید متد رو تعریف کرد. ولی برای مواقعی که متد به شئ خاصی (غیر از ورودی های متد) وابسته نیست بصورت استاتیک تعریف بشه بهتره. برای مثال خودتون اگر هش روی مقداری که متد بصورت ورودی میگیره قراره انجام بشه بصورت استاتیک باشه بهتره ولی اگر قراره یک شئ از کلاستون رو هش کنه باید غیراستاتیک باشه.
غیر از مواردی که شما گفتید و موردی که عرض کردم از نظر اشغال حافظه هم هر شئ وقتی ساخته میشه حافظه میگیره و بعد از Dispose شدن از حافظه خارج میشه ولی استاتیک ها (هر چیز استاتیکی اعم از متد ، پراپرتی ، متغیر ...) در اولین ارجاع ، حافظه اشغال میکنه و تا زمانی که برنامه باز است حافظه رو نگه میداره. پس در انتخاب استاتیک یا غیر استاتیک بودن دقت کنید که ممکنه باعث بشه برنامه شما بیش از حد نیاز حافظه بگیره.