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

نام تاپیک: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

  1. #1

    چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    متد هایی به یک متغیر سراسری دسترسی دارند و مقدار این متغیر توسط متد های بزرگ و بزرگ تر میشود
    حال میخوام ایونتی تعریف کنم که اگر طول متغییر مثلا به 1000 رسید فعال بشه

  2. #2

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    سلام شاید این لینک به نوشتن Custom Events در C#‎ کمک کنه
    Kernel Mode Developer
    RootKitSMM@Yahoo.com

  3. #3
    کاربر تازه وارد آواتار Marzieh_A
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    خونمون
    پست
    87

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    چرا از if استفاده نمی کنید؟
    هم می تونید داخل event مربوطه if بزارید هم وقتی که event رو call می کنید قبل از call کردن if بزارید.
    فایل های ضمیمه فایل های ضمیمه

  4. #4

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    تشخیص اینکه طول متغیر رشته ای به عدد x رسیده مهم هست
    روش بهتر؟

  5. #5

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    سلام .
    تشخیص اینکه طول متغیر رشته ای به عدد x رسیده مهم هست
    با یه if میشه این کار رو کرد . خاصیت Lenght متغیر های رشته ای طولش رو بر میگردونه . مثل این :

    if (Var_String.Lenght == 1000)
    {
    command
    }

    موفق باشید ..............

  6. #6

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    این که با if میشه تشخیص داد رو منم میدونم
    اگر از If استفاده بشه مجبورم در قسمت های مختلف برنامه این if رو بزارم که تعداد کپی ها زیاد میشه
    با توجه به اینکه نمیشه پیش بینی کرد که کجای متد روی بزرگ کردن رشته تاثیرات زیاد داره

  7. #7
    کاربر تازه وارد آواتار Marzieh_A
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    خونمون
    پست
    87

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    event که بارها نوشته نمی شه که کپی ها زیاد بشه!
    if رو داخل خود event بزارید.

  8. #8
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    نقل قول نوشته شده توسط saed2006 مشاهده تاپیک
    متد هایی به یک متغیر سراسری دسترسی دارند و مقدار این متغیر توسط متد های بزرگ و بزرگ تر میشود
    حال میخوام ایونتی تعریف کنم که اگر طول متغییر مثلا به 1000 رسید فعال بشه
    ۱. به استفاده از متغییرهایه سراسری برنامه‌نویسی گفته نمیشه.
    ۲.به جایه کار با یک متغییر، یک کلاس تعریف کنید، و با استفاده از متدهایه پابلیک از هرجایه دیگر قبل از اینکه به متغییر پرایوت مقدار عوض بشه از داخل همان کلاس مدیریت کنید.
    مشکلی بود کدتان را بفرستید درستش کنیم.

  9. #9

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

     public class ValueChangedEventArgs : EventArgs
    {
    private int _value;
    public int Value { get { return this._value;} }
    public ValueChangedEventArgs(int value)
    {
    this._value = value;
    }
    }

    public delegate void ValueChangedEvendHandler(object sender, ValueChangedEventArgs e);
    public class myInt
    {
    private int _myGlobalint;
    public int myGlobalint
    {
    get { return _myGlobalint;}
    set
    {
    _myGlobalint = value;
    onValueChanged(new ValueChangedEventArgs(value));
    }
    }

    public event ValueChangedEvendHandler ValueChanged;
    protected virtual void onValueChanged(ValueChangedEventArgs e)
    {
    ValueChanged(this, e);
    }
    }


    myInt ii;
    public Form1()
    {
    InitializeComponent();
    ii = new myInt();
    ii.ValueChanged += new ValueChangedEvendHandler(ii_ValueChanged);
    }

    void ii_ValueChanged(object sender, ValueChangedEventArgs e)
    {
    if(e.Value == 1000)
    //Do SomeThing
    }

  10. #10

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    نقل قول نوشته شده توسط exlord مشاهده تاپیک
     public class ValueChangedEventArgs : EventArgs
    {
    private int _value;
    public int Value { get { return this._value;} }
    public ValueChangedEventArgs(int value)
    {
    this._value = value;
    }
    }

    public delegate void ValueChangedEvendHandler(object sender, ValueChangedEventArgs e);
    public class myInt
    {
    private int _myGlobalint;
    public int myGlobalint
    {
    get { return _myGlobalint;}
    set
    {
    _myGlobalint = value;
    onValueChanged(new ValueChangedEventArgs(value));
    }
    }

    public event ValueChangedEvendHandler ValueChanged;
    protected virtual void onValueChanged(ValueChangedEventArgs e)
    {
    ValueChanged(this, e);
    }
    }


    myInt ii;
    public Form1()
    {
    InitializeComponent();
    ii = new myInt();
    ii.ValueChanged += new ValueChangedEvendHandler(ii_ValueChanged);
    }

    void ii_ValueChanged(object sender, ValueChangedEventArgs e)
    {
    if(e.Value == 1000)
    //Do SomeThing
    }
    میشه در مورد کارکرد کدها توضیح مختصری بدین

  11. #11

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    ۱. به استفاده از متغییرهایه سراسری برنامه‌نویسی گفته نمیشه.
    ۲.به جایه کار با یک متغییر، یک کلاس تعریف کنید، و با استفاده از متدهایه پابلیک از هرجایه دیگر قبل از اینکه به متغییر پرایوت مقدار عوض بشه از داخل همان کلاس مدیریت کنید.
    مشکلی بود کدتان را بفرستید درستش کنیم.
    من از یک کلاس استفاده کردم و وقتی متغیر ست میشه چک میکنه که طولش بزرگتر n ]ست یا نه
    اما فکر میکنم این چک کردن های زیاد , اصولی نباشه
    وقتی event تعریف میکنیم به ازای هر تغییر در متغیر طولش چک میشه؟
    اینطوری که تعداد چک کردن ها زیاد میشه

  12. #12
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    نقل قول نوشته شده توسط saed2006 مشاهده تاپیک


    من از یک کلاس استفاده کردم و وقتی متغیر ست میشه چک میکنه که طولش بزرگتر n ]ست یا نه
    اما فکر میکنم این چک کردن های زیاد , اصولی نباشه
    وقتی event تعریف میکنیم به ازای هر تغییر در متغیر طولش چک میشه؟
    اینطوری که تعداد چک کردن ها زیاد میشه
    تعداد چک کردنها با تعداد عوض شدن مقدار مساوی میماند،
    دیگر مشکل چیه؟

  13. #13

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    حتی وقتی از even استفاده کنیم؟

  14. #14
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    نقل قول نوشته شده توسط saed2006 مشاهده تاپیک
    حتی وقتی از even استفاده کنیم؟
    بالاخره باید مقایسه انجام بشه، بدونه مقایسه که نمیشه ایونت را بالا آورد.
    یکجوری event را بالاخره باید بالا آورد. اگر چیزه متفاوتی در نظرتان است بگید.

  15. #15

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    مثلا توی تشخیص وقوع وقفه در سیستم عامل دو روش وجود داره یکی چک کردن متوالی وقفه و تشخیص ان یکی هم ایجاد interup در روند اجرای برنامه و تشخیص وقوع وقفه
    راه حل اول زمان گیر و بی فایده هست یعنی مرتبا چک میشه و راه دوم اصولی چون فقط یک بار اونم وقتی وقفه ایجاد شد اتفاق میافته حالا من نمیدونم event حالت اول هست یا دوم

  16. #16
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: چگونه می توانم Event مورد نظر خود را ایجاد کنم؟

    نقل قول نوشته شده توسط saed2006 مشاهده تاپیک
    مثلا توی تشخیص وقوع وقفه در سیستم عامل دو روش وجود داره یکی چک کردن متوالی وقفه و تشخیص ان یکی هم ایجاد interup در روند اجرای برنامه و تشخیص وقوع وقفه
    راه حل اول زمان گیر و بی فایده هست یعنی مرتبا چک میشه و راه دوم اصولی چون فقط یک بار اونم وقتی وقفه ایجاد شد اتفاق میافته حالا من نمیدونم event حالت اول هست یا دوم
    اگر بخواهیم به مشاهبتا نگاه کنیم . ایونت را مانند اینترراپت ببینید، ولی اینکه که این اینترراپت اجرا بشه بازهم به مقایسه شدن میانجامه، حالا دو روش میشه استفاده کرد :
    یک ایونت که هر بار مقدار عوض میشه بالا بیاد (اینترراپت کنه) و یا اینکه
    یک ایونت که هر بار مقدار عوض میشه و از ۱۰۰ به بالا بود بالا بیاد (اینترراپت کنه) .
    استفاده از ایونتها و شیگرائی جایه بخصوصی دارد، اینطوری که من احساس میکن شرائطی که شما دارید استفاده از برنامه‌نویسی شیگرا را نقض میکنه، ممکنه که اصل چیزی که لازم دارید نباید به شکل شیگرائی پیاده بشه. شیگرائی را برایه حل همه حالتها همیشه نمیشه استفاده کرد.

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

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