ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی “ ورود به حساب” کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





صفحه 3 از 16 نخست 12345613 ... آخرین
نمایش نتایج: از 21 به 30 از 154
Like Tree3Likes

موضوع: نکات بسيار مهم در سي شارپ

  1. #21
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    غیر فعال کردن یک رویداد در زمان اجرا

    گاهی لازم است در زمان اجرا یک رویداد رو موقتا و یا برای همیشه غیر فعال کنیم. برای اینکار با استفاده از =- ایونت هندلر مورد نظر را از رویداد حذف میکنیم.

    مثال - فرض کنید که در جایی لازم است مقدار یک TextBox رو عوض کنیم بدون آنکه بخواهیم رویداد TextChanged آن تحریک شود (البته در اینجا بصورت موقت و بعد از تخصیص مقدار آن را به حالت اول برمیگردانیم) :


    private void button1_Click(object sender, EventArgs e)
    {
    // remove event handler
    textBox1.TextChanged <b>-=</b> new EventHandler(<b>textBox1_TextChanged</b>);

    textBox1.Text = "salam";

    // add event handler
    textBox1.TextChanged <b>+=</b> new EventHandler(<b>textBox1_TextChanged</b>);
    }

    private void <b>textBox1_TextChanged</b>(object sender, EventArgs e)
    {
    ....
    MessageBox.Show("TextChanged");
    ....
    }

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  2. #22
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    یک مثال ساده از پیاده سازی delegate

    فرض کنید متود ساده زیر را داریم و میخواهیم به عنوان پارامتر به متود دیگری ارسال کنیم
    public void DisplayNumber(int num)
    {
    MessageBox.Show(string.Format("The value is {0}", num));
    }

    ابتدا نوع داده ای جدیدی ازdelegate با همین signature یعنی از نوع void و با پارامتر ی از نوع int تعریف می کنیم:
    public delegate void ProcessNumber(int number);

    سپس متغیری از نوع داده ا ی delegate تعریف شده به صورت زیر اعلان میکنیم :
    ProcessNumber pn = new ProcessNumber(DisplayNumber);

    حال میتوان این متغیر را به عنوان پارامتر به هر متود دلخواهی صادر کرد (مثلا متود زیر):
    public int MultiplyNumbers(int a, int b, ProcessNumber pn)
    {
    int op = a * b;
    pn(op);
    return op;
    }

    با این فراخوانی :
    MultiplyNumbers(4, 5, pn);


    منبع:سری های آموزشی TestOut C#‎ for programmers[برای نمایش لینک باید عضو شوید. ]testout.com

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  3. #23
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    کار با کنترل های تولید شده توسط یک Thread* از طریق Thread ی دیگر

    فرض کنیم یک تابع داریم که کاری بر روی یک Label* انجام میدهد.
    میخواهیم این تابع را با استفاده از یک Thread*دیگر فراخوانی کنیم. دقت کنید که Label توسط thread*اصلی برنامه ایجاد شده و نمیتوان بصورت عادی به آن دسترسی داشت و با cross-thread exception*مواجه میشویم.
    برای این کار طبق روش زیر میتوان عمل کرد:
    using System.Threading;

    thread*ی که برای تابع مورد نظر تعریف میکنیم :
    Thread t = new Thread(new ThreadStart(this.DoSomeThing));





    برای تعریف تابع مورد نظر باید به نکات زیر توجه داشته باشیم:

    - زمانی که کنترل مورد نظر ما (در اینجا label*) دارای مقدارtrue *برای خاصیت InvokeRequired باشد ما باید تابع خود را بصورت cross-thread* فراخوانی کنیم. برای اینکار از متد Invoke استفاده میکنیم که یک Delegate به عنوان پارامتر میگیرد و آنرا بصورت cross-thread* فراخوانی میکند.

    - زمانیکه کنترل مورد نظر دارای مقدار false برای خاصیت InvokeRequired*خود باشد میتوانیم کارهای مورد نظرمان را بر روی آن انجام دهیم.

    پس ما باید در ابتدا delegate*ی به متد مورد نظرمان تعریف کنیم و با استفاده از آن و به شکل زیر متد خود را تعریف میکنیم :

    void DoSomeThing()
    {
    if(label.InvokeRequired)
    {
    delegate void myDelegate();
    myDelegate del = new myDelegate(this.DoSomeThing);
    Invokde(del);
    }
    else
    //something to do on label here
    }

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  4. #24
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    کار با اشیاء بوسیله ی نام آنها (با کمک از Reflection)

    مثال - نمایش یک فرم با دانستن نام آن :
    (این مثال کاربردهای زیادی میتواند داشته باشد، فرض کنید که نام فرمهای مورد نیاز برای کاربردی خاص رو در یک جدول دیتابیس ذخیره کرده اید)

    ;using System.Reflection
    private void button1_Click(object sender, EventArgs e)
    {
    Assembly myAssembly = Assembly.GetExecutingAssembly();
    Form myForm =
    myAssembly.CreateInstance("<b>WindowsFormsApplication1.Form2</b>") as Form;
    myForm.ShowDialog();
    }

    نکته : حتما نام NameSpace را قبل از نام آبجکت قرار دهید؛ در مثال بالا "WindowsFormsApplication1" بود.

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  5. #25
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    جلوگیری از رخ دادن Unhandled Exceptions

    در فایل program.cs مربوط به پروژه بعد از دستورات زیر
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(fals e);




    دستور زیر رو قرار بدید
    Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadExce  ption);





    و در همون فایل program.cs متدی با همان نامی که در سازنده بالا دادید باید ایجاد کنید مثل متد زیر
    static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
    {
    MessageBox.Show("خطا در اجرای دستور کاربر", "خطا");
    }


    از این به بعد در صورتی که خطایی در قطعه کدی از برنامه رخ بده که درون بلوک try قرار نداشته باشه به این متد فرستاده می شه و دیگه پیام پیش فرض دات نت فریم ورک نمایش داده نمی شه.
    نکته : آرگومان e در متد فوق حاوی Exception ایجاد شده می باشد که از آن می توان استفاده های مختلفی کرد.

    -------------------------------------------------------
    نقل قول مستقیم از لینک زیر (ایجاد شده توسط رها)
    [برای نمایش لینک باید عضو شوید. ]

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  6. #26
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    پیاده سازی حالت ساده ی الگوی سینگلتون در یک کلاس

    sealed class SingletonClass
    {
    // Static members are lazily initialized.
    // .NET guarantees thread safety for static initialization
    private static readonly SingletonClass instance =
    new SingletonClass();

    // Note: constructor is private.
    private SingletonClass(){}

    public static SingletonClass GetInstance()
    {
    return instance;
    }
    }

    [برای نمایش لینک باید عضو شوید. ]

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  7. #27
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    معرفی یک الگوی ساده از ژنریک سینگلتون

    class GenericSingleton<T> where T : class, new()
    {
    private static T instance;

    public static T GetInstance()
    {
    lock (typeof(T))
    {
    if (instance == null)
    {
    instance = new T();
    }
    return instance;
    }
    }
    }



    مثال از نحوه ی استفاده :
    AutoFactory autoF = GenericSingleton<AutoFactory>.GetInstance();




    منبع : [برای نمایش لینک باید عضو شوید. ]

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  8. #28
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    Lightbulb آشنایی با الگوهای طراحی : Decorator Pattern

    Decorator Pattern



    این pattern در طبقه بندی الگوهای ساختاری جای دارد و امکان افزودن قابلیتها و تزیینات جدید به یک آبجکت را بصورت داینامیک و در زمان اجرا ممکن میکند.
    این امکان بوسیله ی افزودن یک کلاس جدید (decorator) ممکن میشود که کلاس اصلی را wrap میکند. این wrapping معمولا با پاس دادن آبجکت اصلی بعنوان یک پارامتر به constructor decorator انجام میشود.

    Decorator قابلیتهای جدید را در آبجکت پیاده سازی میکند و باید همان اینترفیسی را که کلاس اصلی پیاده سازی میکند، پیاده سازی کند.
    در زمان اجرا میتوان به یک آبجکت هم decorator افزود و هم کاست بدون آنکه مصرف کننده متوجه تغییرات گردد.

    Decorating در واقع بعنوان روش جایگزین subclassing (با انعطاف بیشتر) جهت توسعه قابلیتهاست با این تفاوت که :
    1. Subclassing رفتارهای جدیدی را در زمان کامپایل(compile-time) اضافه میکند در حالیکه decorating میتونه رفتارهای جدیدی را در زمان اجرا(runtime) اضافه نماید.
    2. با decorating میتوانیم یک قابلیت را تنها به یک آبجکت خاص از یک کلاس بدهیم بدون آنکه سایر آبجکتهای آن کلاس تغییر کنند.

    گاه در خیلی از مسایل بظاهر مشکل که صدها کلاس مشتق شده با روابطی پیچیده دارند؛ با پیاده سازی این الگو به یک طراحی آسان و خوانا خواهیم رسید.


    یک مثال قابل دانلود :
    [برای نمایش لینک باید عضو شوید. ]

    منابع :
    [برای نمایش لینک باید عضو شوید. ]
    [برای نمایش لینک باید عضو شوید. ]
    [برای نمایش لینک باید عضو شوید. ]

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  9. #29
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    آشنایی با الگوهای طراحی : Singleton Pattern

    Singleton Pattern



    هدف : میخواهیم تضمین کنیم که از یک کلاس تنها بتوان یک آبجکت (حالت ساده و متعارف سینگلتون) ایجاد کرد و همه ی درخواستها نیز تنها به همان یک آبجکت هدایت شوند و نیز بتوان یک دسترسی عمومی به آن داشت.

    اولین قدم : سازنده ی کلاس را private میکنیم
    چرا private ؟ - پاسخ : تا هیچکسی نتواند از کلاس آبجکت بسازد.

    دومین قدم : یک فیلد استاتیک از نوع خود کلاس تعریف میکنیم.
    چرا استاتیک : چون قرار است در یک متود استاتیک از آن استفاده کنیم.
    چرا private : چون قرار است امکان دسترسی به این آبجکت از طریق یک متود یا پراپرتی صورت گیرد و دسترسی مستقیم مطلوب نیست.

    سومین قدم : ایجاد یک پراپرتی یا متود public و استاتیک که فیلد را برمیگرداند.
    چرا public ؟ چون میخواهیم از همه جا قابل دسترسی باشد.
    چرا استاتیک ؟ چون آبجکتی از کلاس ندارم و ناچارا باید دسترسی به این متود یا پراپرتی در سطح کلاس باشد.

    پس تا اینجا داریم :
    public sealed class Singleton
    {
    // Private Constructor
    Singleton() { }

    // Private object instantiated with private constructor
    static readonly Singleton instance = new Singleton();

    // Public static property to get the object
    public static Singleton UniqueInstance
    {
    get { return instance; }
    }
    }[COLOR=DarkSlateBlue][COLOR=Black][/COLOR][/COLOR]


    معمولا بهتر است این پیاده سازی بصورت lazy instantiation باشد (یعنی تا قبل از اولین invoking آبجکت مقداردهی اولیه نشود) :
    public class Singleton
    {
    // Private constructor
    Singleton() { }

    // Nested class for lazy instantiation
    class SingletonCreator
    {
    static SingletonCreator() { }
    // Private object instantiated with private constructor
    internal static readonly
    Singleton uniqueInstance = new Singleton();
    }

    // Public static property to get the object
    public static Singleton UniqueInstance
    {
    get { return SingletonCreator.uniqueInstance; }
    }
    }


    این الگو به شدت در طراحیهای مختلف و الگوهای دیگر (مانند : Abstract Factory, Façade , ...) مورد استفاده دارد.



    کدها از کتاب : [برای نمایش لینک باید عضو شوید. ]

    منابع :
    [برای نمایش لینک باید عضو شوید. ]
    [برای نمایش لینک باید عضو شوید. ]

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

  10. #30
    Prof.MohammadGh
    Moderator
    تاریخ عضویت
    1970 Jan
    محل سکونت
    Iran
    نوشته ها
    317
    9
    183

    گرد کردن و رُند کردن یک مقدار اعشاری

    رُند کردن :
    int x = (int)Math.Round(2.5555); // x == 3





    گرد کردن تا دو رقم اعشار :
    decimal x = Math.Round(2.5555, 2); // x == 2.56

    Info بسمه تعالي

    1.از عناوين مناسبي براي ايجاد تاپيکها استفاده کنيد.
    2.اگر پستي برايتان مفيد بود فقط از دکمه ي تشکر آن پست استفاده کنيد.

    To Contact Me:[برای نمایش لینک باید عضو شوید. ]

صفحه 3 از 16 نخست 12345613 ... آخرین
نمایش نتایج: از 21 به 30 از 154

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. پاسخ: 0
    آخرين نوشته: 2012-02-18, 11:35 PM
  2. آسيب*پذيري Login ID در SQL Server 7.0
    توسط MspSoft در انجمن SQL Server
    پاسخ: 0
    آخرين نوشته: 2012-01-30, 01:02 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

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

Content Relevant URLs by vBSEO 3.6.0 RC 2