نمایش نتایج 1 تا 11 از 11

نام تاپیک: notation پراپرتی و enum دریک کلاس

  1. #1
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    notation پراپرتی و enum دریک کلاس

    سلام
    1-من یک enum شامل ماه های سال دارم و یک property برای بررسی ماه انتخاب شده نیاز دارم .چطور باید notation رو رعایت کنم ؟
    2-میخوام کاربر هنگام استفاده از کلاس پارامتر ماه را بصورت enumانتخاب کنه و در پراپرتی عدد مربوط به ماه انتخابی برگردونده بشه !
    به کد های زیر توجه کنید :

    public enum Month
    {
    January = 1,
    February = 2,
    March = 3,
    April = 4,
    May = 5,
    June = 6,
    July = 7,
    August = 8,
    September = 9,
    October = 10,
    November = 11,
    December = 12
    }

    public Month _Month;

    private short m_Month
    {
    get
    {
    if(_Month!=null)
    switch (_Month)
    {
    case Month.January:
    m_Month = 1;
    break;
    case Month.February:
    m_Month = 2;
    break;
    case Month.March:
    m_Month = 3;
    break;
    case Month.April:
    m_Month = 4;
    break;
    case Month.May:
    m_Month = 5;
    break;
    case Month.June:
    m_Month = 6;
    break;
    case Month.July:
    m_Month = 7;
    break;
    case Month.August:
    m_Month = 8;
    break;
    case Month.September:
    m_Month = 9;
    break;
    case Month.October:
    m_Month = 10;
    break;
    case Month.November:
    m_Month = 11;
    break;
    case Month.December:
    m_Month = 12;
    break;
    }
    return m_Month;
    }
    }


    در روش فوق درواقع کلاس از m_Month استفاده میکنه و کاربر هنگام استفاده _Month رو مقداردهی میکنه.البته error داره..گفتم حدودی روش رو بگم.
    دوستان راه حل بهتری ندارن ؟
    آخرین ویرایش به وسیله dr_csharp : یک شنبه 07 مهر 1387 در 13:36 عصر

  2. #2
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: notation پراپرتی و enum دریک کلاس

    نمیدون بچه ها نظر بدین.خودم به این نتجه رسیدم :

    publicenumMonth
    {
    January = 1,
    February = 2,
    March = 3,
    April = 4,
    May = 5,
    June = 6,
    July = 7,
    August = 8,
    September = 9,
    October = 10,
    November = 11,
    December = 12
    }

    privateMonth m_Month;
    publicMonth _Month
    {
    get
    {
    return m_Month;
    }
    set
    {
    if (value != null)
    m_Month =
    value;
    }
    }

    و هنگام استفاده از پراپرتی Month_ در کلاس با یه Switch مقدار مورد نظر رو استخراج میکنم !

  3. #3
    کاربر جدید آواتار Laser_Hadi
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    دنیا
    سن
    43
    پست
    8

    Talking نقل قول: notation پراپرتی و enum دریک کلاس

    دوست عزیز Property رو به صورت زیر تغییر بده :



    private short m_Month = 0;
    public Month SelectedMonth
    {
    get
    {
    return (Month)m_Month;
    }
    set
    {
    m_Month = (int)Enum.Parse(typeof(Month), value.ToString());
    }
    }


    با تشکر : لیزر Laser

  4. #4
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: notation پراپرتی و enum دریک کلاس

    نقل قول نوشته شده توسط Laser_Hadi مشاهده تاپیک
    دوست عزیز Property رو به صورت زیر تغییر بده :



    private short m_Month = 0;
    public Month SelectedMonth
    {
    get
    {
    return (Month)m_Month;
    }
    set
    {
    m_Month = (int)Enum.Parse(typeof(Month), value.ToString());
    }
    }




    با تشکر : لیزر Laser
    با استفاده از کد شما هنگام استفاده ازپراپرتی SelectdMonth باید مجدد cast کنیم،فکر میکنم روش قبلی مزیت داشته باشه بدین دلیل که تنها هنگام استفاده نیاز به cast به مقدار short خواهیم داشت .
    ضمنا اینکار مجازنیست :

    (
    Month)m_Month;

  5. #5
    کاربر جدید آواتار Laser_Hadi
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    دنیا
    سن
    43
    پست
    8

    Talking نقل قول: notation پراپرتی و enum دریک کلاس

    تمامی اعمال از جمله Cast در داخل خود Property انجام میشه و دیگه لازم به این کار نیست.
    مگر اینکه منظور شما از سوالتون چیز دیگه ای باشه و من درست متوجه نشده باشم.

    با تشکر : لیزر Laser

  6. #6
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: notation پراپرتی و enum دریک کلاس

    نقل قول نوشته شده توسط Laser_Hadi مشاهده تاپیک
    تمامی اعمال از جمله Cast در داخل خود Property انجام میشه و دیگه لازم به این کار نیست.
    مگر اینکه منظور شما از سوالتون چیز دیگه ای باشه و من درست متوجه نشده باشم.

    با تشکر : لیزر Laser
    همونطور کهمیدونید،برای استفاده از enum ما نیازمند cast اون به یک مقدار عددی میباشیم . بنابراین با این روش شما ،عملیات cast در پراپرتی هیچ دردی رو دوا نمیکنه چون نهایتا باز داره متغیری از نوع Enum برمیگردونه!مگر اینکه در برنامه ( هنگام استفاده ) از m_Month استفاده کنیم و این یعنی زیر سوال بردن propety.

  7. #7
    کاربر جدید آواتار Laser_Hadi
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    دنیا
    سن
    43
    پست
    8

    نقل قول: notation پراپرتی و enum دریک کلاس

    با کمی جابه جایی نظر شما تامین میشه :

    private Month m_Month = Month.January;
    public short SelectedMonth
    {
    get
    {
    return (int)Enum.Parse(typeof(Month), m_Month.ToString());
    }
    set
    {
    m_Month = (Month)value;
    }
    }

  8. #8
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: notation پراپرتی و enum دریک کلاس

    نقل قول نوشته شده توسط Laser_Hadi مشاهده تاپیک
    با کمی جابه جایی نظر شما تامین میشه :

    private Month m_Month = Month.January;
    public short SelectedMonth
    {
    get
    {
    return (int)Enum.Parse(typeof(Month), value.ToString());
    }
    set
    {
    m_Month = (Month)m_Month;
    }
    }
    رفیق اینجوری که نوع پراپرتی رو short کردین !!!؟ مثلا کاربر کلاس قراره به این پراپرتی یک enum نسبت بده و با عدد سروکله نزنه!

  9. #9
    کاربر جدید آواتار Laser_Hadi
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    دنیا
    سن
    43
    پست
    8

    نقل قول: notation پراپرتی و enum دریک کلاس

    دوست عزیز من هرچی می گم شما عکسش رو می گی.

    من توصیه می کنم یک بار دیگه به اول صفحه مراجعه کنی و سوال خودت رو بخونی. فکر می کنم خودت
    هم یادت رفته که چی می خوای. بعد اگر بیای پائین تر می بینی که بهینه و درست همون Property طولانی که خودت نوشتی رو من برات نوشتم با یک تفاوت دیگه که مال شما Error داره ولی اونی که من
    نوشتم کار میکنه. مگر اینکه اون Property رو خودت ننوشته باشی و اصلا" نمی دونی که چیکار می کنه.
    به هر صورت من تلاشم رو کردم. پس اگر اینها جواب شما نیست سوالت رو واضح بگو تا با کمک دیگران عصبانی نشی.

    با تشکر : لیزر Laser

  10. #10
    کاربر دائمی آواتار dr_csharp
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Tehran
    پست
    599

    نقل قول: notation پراپرتی و enum دریک کلاس

    نقل قول نوشته شده توسط Laser_Hadi مشاهده تاپیک
    دوست عزیز من هرچی می گم شما عکسش رو می گی.

    من توصیه می کنم یک بار دیگه به اول صفحه مراجعه کنی و سوال خودت رو بخونی. فکر می کنم خودت
    هم یادت رفته که چی می خوای. بعد اگر بیای پائین تر می بینی که بهینه و درست همون Property طولانی که خودت نوشتی رو من برات نوشتم با یک تفاوت دیگه که مال شما Error داره ولی اونی که من
    نوشتم کار میکنه. مگر اینکه اون Property رو خودت ننوشته باشی و اصلا" نمی دونی که چیکار می کنه.
    به هر صورت من تلاشم رو کردم. پس اگر اینها جواب شما نیست سوالت رو واضح بگو تا با کمک دیگران عصبانی نشی.

    با تشکر : لیزر Laser

    راه اول که اولین فکر بود و تو توضیحاتم بیان شده بود چه وضعیتی داره !در راه دوم من به هدفم رسیدم و خواستم دوستان هم نظر و پیشنهاد ارایه کنن !
    و اما اونچه من میخوام دقیقا تو پست اول مطرح شده :
    2-میخوام کاربر هنگام استفاده از کلاس پارامتر ماه را بصورت enumانتخاب کنه و در پراپرتی عدد مربوط به ماه انتخابی برگردونده بشه
    بازم تاکید میکنم که در روش مذکور ( پست دوم ) مسئله حل و تنها تفاوتش با صورت مسئله اینه که پراپتی enum برمیگردونه و باید هنگام استفاده cast بشه .
    تا اینجای بحث از جناب لیزر بخاطر توجهشون ممنونم .

  11. #11
    کاربر دائمی آواتار SMRAH1
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    مشهد
    پست
    884

    نقل قول: notation پراپرتی و enum دریک کلاس

    سلام

    کد پیوست،قسمت از برنامه هایی است که برای افزایش تجربه خودم،می نویسم.
    در بخش Enum DayOfWeek : string <> int : شاید به هدفت برسی(فرم کارهای دیگری هم می کند ولی فقط این قسمتش به منظور شما مربوط است).البته نیاز به کد زیادی نیست ولی من حوصله پالایش کد را نداشتم.

    موفق باشی
    فایل های ضمیمه فایل های ضمیمه

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •