آموزش کار با Constructor در سی شارپ

 

Constructor در سی شارپ

Constructor در سی شارپ برای مقداردهی اولیه ی فیلد های کلاس ها استفاده میشود.  Constructor یک کلاس به صورت اتوماتیک در زمان ایجاد نمونه ای از یک کلاس فراخوانی میشود.هرگاه یک کلاس یا ساختار ایجاد شود ، Constructor آن فراخوانی میشود.یک کلاس یا ساختار ممکن است دارای چندین Constructor که آرگومان های متفاوتی دریافت میکنند ، باشد. Constructor ها به برنامه نویس امکان تعیین مقادیر پیش فرض ، حد نمونه و نوشتن کدی که انعطاف پذیر و به آسانی قابل خواندن باشد ، میدهد.

Constructor در سی شارپ:

اگر شما Constructor برای اشیا ارائه ندهید ، C# خودش یکی به صورت پیش فرض میسازد که مثالی از شئ میسازد و مقادیر اعضا را با مقادیر پیش فرضی که در جدول مقادیر پیش فرض (مرجع C#) آمده است ، تعیین میکند.

یک Constructor نامی مشابه کلاس یا ساختار خواهد داشت.

Constructor دارای نوع بازگشتی نیست.

C# به صورت پیش فرض یکی میسازد که حد نمونه ی اشیا را تعیین میکند و متغیر ها را با مقدار پیش فرض لیست شده تعیین میکند.

Constructor در سی شارپ میتواند توسط اعداد و نوع پارامتر ها Overload باشد.

نمونه  Constructor در سی شارپ

نمونه های Constructor برای ساخت و مقداردهی اولیه ی هر متغیر نمونه ای استفاده میشود زمانی که شما از expression های جدید برای ایجاد یک شئ از کلاس استفاده میکنید.

class CoOrds   
{   
    public int x, y;   
    // default constructor   
    public CoOrds()   
    {   
        x = 0;   
        y = 0;   
    }   
}  

 

این نمونه Constructor هرگاه یک شئ بر اساس کلاس CoOrds ایجاد میشود ، فراخوانی میشود. یک Constructor مانند این که هیچ آرگومانی نمی پذیرد ، یک Constructor پیش فرض نامیده میشود.

Constructor پارامتری

Constructer ای با حداقل یک پارامتر ، Constructor پارامتری نامیده میشود. مزیت Constructor پارامتری آن است که میتوانید هر نمونه از کلاس را به مقادیر متفاوتی مقداردهی کنید.

// A constructor with two arguments:  public CoOrds(int x, int y) {     this.x = x;     this.y = y; }

 

این به اشیای CoOrd قابلیت ساخته شدن با پیش فرض یا مقادیر اولیه ی به خصوصی را میدهد.

Constructor ایستا

برای مقداردهی اولیه ی یک کلاس ایستا یا متغیر های ایستا در یک کلاس غیر ایستا ، باید یک Constructor ایستا تعریف کنید. یک Constructor ایستا برای مقداردهی هر داده ی ایستا یا برای اجرای یک کار به خصوص که تنها یک بار نیاز به انجام شدن دارد ، به کار میرود.

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

Constructor های ایستا خصوصیات زیر را دارا میباشند :

یک Constructor ایستا access modifier ها را نمیگیرد و پارامتری نخواهد داشت.

یک Constructor ایستا به صورت اتوماتیک برای مقداردهی کلاس ، قبل از ایجاد شدن نمونه یا فراخوانی میشود.

یک Constructor ایستا نمیتواند به صورت مستقیم فراخوانی شود.

کاربر هیچ کنترلی بر روی آن ندارد زمانی که Constructor ایستا در برنامه اجرا شده باشد.

یک کاربرد اصلی Constructor ایستا زمانی است که یک کلاس درحال استفاده از یک فایل log است و از Constructor برای نوشتن ورودی ها به این فایل استفاده میشود.

Constructor های ایستا همچنین برای زمانی که در حال ایجاد کلاس های wrapper برای کد های کنترل نشده هستیذ کاربرد دارد ، زیرا Constructor میتواند متد LoadLibrary را فراخوانی کند.

اگر یک Constructor ایستا استثنایی تولید کند ، زمان اجرا برای دوبار فراخوانی نمیشود و نوع آن برای باقی طول عمر برنامه تا زمانی که برنامه تان در حال اجرا است Uninitialized باقی میماند.

class SimpleClass   
{   
    // Static variable that must be initialized at run time.   
    static readonly long baseline;   
    // Static constructor is called at most one time, before any   
    // instance constructor is invoked or member is accessed.   
    static SimpleClass()   
    {   
        baseline = DateTime.Now.Ticks;   
    }   
}  

 

Constructor خصوصی

Constructor خصوصی یک Constructor نمونه ی مخصوص است. به طور عمومی در کلاس هایی که تنها شامل اعضای ایستا است ، استفاده میشود. اگر کلاسی یک یا تعداد بیشتری Constructor خصوصی داشته باشد و Constructor عمومی نداشته باشد ، کلاس های دیگر قادر به ساخت نمونه ار این کلاس نخواهند بود.

class NLog   
{   
// Private Constructor:   
private NLog() {}   
public static double e = Math.E; //2.71828...   
}

امیدوارم از خواندن آن لذت برده باشید !
منتظر نظرات وپیشنهاداتتون هستم !

  • پسورد: www.mspsoft.com
داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

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

    رومینا پاسخ

    خیلی خیلی ممنون از توضیح ساده و روانتون

      مسعود شریفی پاسخ

      موفق پیروز باشید :)

    Elham پاسخ

    با سلام و خسته نباشید توضیحاتتون خیلی کامل و خوب بود ولی من یه چیزیو متوجه نشدم چرا تو بعضی کد ها باید ctor نوشته شه وقتی خودش به صورت پیش فرض هست..؟؟؟