سازنده ها متدهای هستند که زمانی یک نمونه کلاس ایجاد شد فراخوانی می شوند. مسولیت اصلی آنها قرار دادن شی جدید را در وضعیت مفید و سازگار است.
همانطور که می دانید کلاس حتما باید یک سازنده داشته باشد حتی اگر شما یک متد سازنده ایجاد نکنید فریم ورک دات نت برای کلاس یک سازنده پیش فرض ایجاد می کند.
سازنده ایستا زمانی که برای اولین بار در کلاس فراخوانی و بررسی می شود در صورت تایید به طور ثابت در نمونه های بعدی مورد استفاده قرار می گیرد.
سازنده های ایستا Thread-safe می باشند و معمولا برای موقعیت های زیر مورد استفاده قرار می گیرند.
1. در نمونه های مختلف یک کلاس به اشتراک گذاشته شود.
2. ایجاد الگوی singleton
public class Animal { static Animal() { Console.WriteLine("Animal Initialized"); } public Animal() { Console.WriteLine("Animal created"); } public static void StMethod() { Console.WriteLine("static method"); } } ------------------------------------------- static void Main(string[] args) { var animal1 = new Animal(); var animal2 = new Animal(); Animal.StMethod(); } OutPut: ///Animal Initialized ///Animal Created ///Animal Created ////static method
همانطور که مشاهده می کنید خروجی این تکه کد فقط یک بار سازنده ایستا فراخوانی می شود.
برای الگوی singleton از این روش استفاده می شود به این صورت است:
public class SessionManager { public static SessionManager Instance; static SessionManager() { Instance = new SessionManager(); } }
نکته:
1. سازنده های ایستا فقط یک بار اجرا می شوند زمانی که اولین شی اون کلاس اجرا شود
2. سازنده های ایستا نمی توانند صفتی داشته باشند (access modifierها)
3. سازنده های ایستا نمی توانند هیچ پارامتر ورودی داشته باشند.