تبلیغات
مرجع عملی و کاربردی زبان سی شارپ ، تصاویر دیدنی ، دانلود نرم افزار های گوناگون - اصول اولیه OOP و دات نت فریمورک

اصول اولیه OOP و دات نت فریمورک

نویسنده :مرتضی عالمین
تاریخ:جمعه 8 خرداد 1388-11:49 ق.ظ

1-مفاهیم بنیادین شیء گرایی

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


در فایل program.cs مربوط به پروژه بعد از دستورات زیر

کد:

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

دستور زیر رو قرار بدید

کد:

Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);

و در همون فایل program.cs متدی با همان نامی که در سازنده بالا دادید باید ایجاد کنید مثل متد زیر

کد:

static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)

{

    MessageBox.Show("خطا در اجرای دستور کاربر", "خطا");

}

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

2-الگوهای طراحی (Design Patterns) :

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


کد:

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;

    }

}

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


کد:

 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();

منبع : http://blog.paranoidferret.com/index...leton-pattern/

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


Decorator Pattern


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

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

Decorating
در واقع بعنوان روش جایگزین subclassing (با انعطاف بیشتر) جهت توسعه قابلیتهاست با این تفاوت که :

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

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


یک مثال قابل دانلود :
http://www.codeproject.com/KB/archit...Decorator.aspx




داغ کن - کلوب دات کام
نظرات() 
foot problems
شنبه 18 شهریور 1396 09:39 ق.ظ
Greate pieces. Keep posting such kind of information on your
site. Im really impressed by it.
Hey there, You've done an excellent job. I'll certainly digg it and individually recommend to my friends.

I'm confident they will be benefited from this website.
How can you get taller in a week?
دوشنبه 16 مرداد 1396 02:41 ب.ظ
Heya i'm for the primary time here. I found this board and I to find It truly useful & it helped me out much.
I am hoping to offer one thing again and help others like you helped me.
hepatitis c foot pain
پنجشنبه 8 تیر 1396 08:10 ب.ظ
You can certainly see your expertise in the work you write.
The sector hopes for even more passionate writers such as you who
are not afraid to say how they believe. At all times follow your heart.
manicure
دوشنبه 21 فروردین 1396 01:37 ب.ظ
Undeniably believe that which you stated.

Your favorite reason seemed to be on the internet the easiest thing to be
aware of. I say to you, I definitely get annoyed while people think about worries that they plainly
don't know about. You managed to hit the nail upon the top and defined out the whole thing without
having side effect , people can take a signal. Will likely be back to get more.
Thanks
reza
جمعه 8 خرداد 1388 03:21 ب.ظ
سلام لینکتو قرار دادم حالا اسم لینک منو بزرگترین مرجع تخصصی موبایل بزار بعد از گذاشتن لینک بهم خبر بده.
خدا حافظ
پاسخ مرتضی عالمین : لینکتو گذاشتم
reza
جمعه 8 خرداد 1388 01:14 ب.ظ
سلام وبلاگ عالی داری اگه فرصت کردی به وبلاگ منم سری بزن و نظر خوتو در بازه ی وبلاگم بنویس راستی اگه موافق با تبادل لینک هستی خبرم کن.
خدا حافظ
محمد
جمعه 8 خرداد 1388 01:10 ب.ظ
سلام وبلاگ خوبی دارید.
یک سیستم کسب درآمد جدید می خوام بهتون معرفی کنم که سقف پرداخت نداره .
یعنی اینکه 15 هر ماه هر چقدر کلیک داشته باشید پرداخت میکنه حتی اگر فقط 1000 تومان باشه.
لینکش هم تو قسمت آدرس وب گذاشتم خود به خود وارد سایت کسب درآمد میشید
یه مزیتی هم که داره اینه که پایین بنر تبلیغاتی دیگه هیچ نوشته نداره .
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر




Admin Logo
themebox Logo