آموزش آنلاین مقدماتی زبان برنامه نویسی PHP برای اطلاعات بیشتر کلیک کرده و فرم را پر کنید
شی گرایی در سی شارپ

تابع سازنده در سی شارپ

یکی از مفاهیم مهمِ شی گرایی در سی شارپ، تابع سازنده می باشد. تابع سازنده در سی شارپ در داخل یک کلاس قابل تعریف بوده و در هنگام تعریف شیء از کلاس این تابع فراخوانی می شود.

تابع سازنده چیست؟

تابع سازنده فقط در داخل کلاس ها قابل تعریف است و در صورتی که کلاس سازنده داشته باشد، موقع تعریف شیء از آن کلاس تابع سازنده اش هم فراخوانی می شود.

در چنین مواقعی اگر تابع سازنده دارای آرگومان یا آرگومان هایی باشد، باید آرگومان ها به شی ایجاد شده از کلاس، پاس داده شوند.

چگونگی تعریف متد سازنده در سی شارپ

برای تعریف تابع سازنده در سی شارپ باید یک تابع هم نام با کلاس ایجاد کرد. برای مثال کلاس Car را در نظر بگیرید، می خواهیم برای کلاس Car یک سازنده ایجاد کنیم:

طبق کدهای زیر یک تابع هم نام با کلاس ایجاد کردیم. این تابع بدون آرگومان تعریف شده است. در داخل تابع سازنده متغیر model مقدار دهی شده است.

حال به تابع main مراجعه کرده و از این کلاس که دارای تابع Constructor می باشد، یک نمونه می سازیم:

اکنون قصد داریم به تابع سازنده در سی شارپ ، آرگومان قرار بدیم:

کلاس Car را اکنون بشکل زیر در نظر بگیرید:

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

اکنون مراجعه می کنیم به تابع main:

نمونه زیر از کلاس Car یک نمونه ایجاد می کند و در داخل همین نمونه باید آرگومان های متد سازنده نیز ارسال شوند.

تعریف چند سازنده در یک کلاس

حالت های قبلی فقط یک متد سازنده در سی شارپ تعریف داشتند، حال می خواهیم ببینیم آیا می توان بیشتر از یک سازنده در یک کلاس تعریف کرد؟

پاسخ: بله می توان بیش تر از یک سازنده در یک کلاس تعریف کرد، منتهی باید در شرایط زیر صدق کند:

  • دارای آرگومان های متفاوتی در تعداد، نوع و ترتیب داشته باشند

حال موقع فراخوانی، کمپایلر از کجا می فهمد که منظور ما کدام سازنده هست؟

پاسخ: این کار بسیار ساده هست اگر نمونه ایجاد شده را بدون آرگومان رها کنید، مورد دومی انتخاب می شود در غیر اینصورت اگر دوتا پارامتر ارسال کنید کامپایلر به طور خودکار به مورد اولی سوئیچ می زند.

حسین درویشی

برنامه نویس سی شارپ، جاوا و لاراول پی اچ پی ، علاقه مند به حوزه هوش مصنوعی و طراحی الگوریتم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Enter Captcha Here : *

Reload Image

دکمه بازگشت به بالا
بستن
بستن