IDE یک جعبه ابزار آماده برای برنامه نویس
- ویرایشگر سورس کد
- کامپایلر یا مفسر
- ابزارهای ساخت اتوماسیون
- اصطلاح کننده خطا
- ویژوال استودیو
- ایکلیپس
- اندروید استودیو
- نت بینز
- سابلیم تکست
امروز می خواهیم درباره polymorphism در سی شارپ صحبت کنیمو اینکه چرا مایکروسافت این قابلیت را برای ما قرار داده؟ در مقاله قبل درباره مفهوم شی گرایی صحبت کردیم و دانستیم که یکی از بخش های شی گرایی، polymorphism است.
پس چندریختی در زبان برنامه نویسی سی شارپ، به ما اجازه میدهد تا برنامه هایی بنویسیم که انواع مختلفی از کلاسهای مرتبط را به شکل کلی اداره کنیم. همچنین افزودن کلاسهای جدید به سیستم را برای ما ساده تر میکند. چندریختی یعنی توانایی استفاده از شکلهای مختلف یک نوع، بدون پرداختن به جزئیات آن.
روش های مختلف چند ریختی در سی شارپ:
متد مجازی، متدی است که در کلاس پایه با واژه virtual اعلام میشود و در یک یا چند کلاس مشتق دوباره تعریف میشود. بنابراین هر کلاس مشتق میتواند نسخه خاصی از متد مجازی را داشته باشد. در کلاس مشتق، هنگام تعریف مجدد متد مجازی، باید آنرا با واژه کلیدی override مشخص کرد.اگر بخواهید در کلاس مشتق، متدی همنام با کلاس پایه داشته باشید، ولی متد مجازی نباشد، (یعنی فرض کنید، میخواهید متد مجازی ایجاد کنید که هیچ ربطی به کلاس مشتق ندارد) در این صورت در کلاس مشتق، این متد را باید با واژه new مشخص کنید.
توجه کنید که در هنگام تعریف مجدد متدها در کلاسهای پایه و مشتق اسامی و امضاهای نوع متد تعریف شده دقیقا با متد مجازی یکسان باشد.
اگر عمق سلسله مراتب وراثت کلاسها بسیار زیاد باشد، کلاسهایی که در بالای سلسله مراتب وجود دارند، دقیقا نمیتوانند نیازهای واقعی کلاسهای مشتق خود را بشناسند. به همین دلیل این کلاسها طوری طراحی میشوند که مشترکات کلاسهای مشتق خود را نگه دارند و کلاسهای مشتق، موارد مورد نیاز شما را پیاده سازی کند. چنین کلاسی، ماهیت متدها و خواصی را که کلاسهای مشتق باید پیاده سازی کنند، تعیین می نماید، ولی خودش آنها را پیاده سازی نمیکند. این کلاسها را کلاسهای انتزاع گویند. کلاسهای انتزاعی قابل نمونه سازی نیستند و با واژه abstract مشخص میشوند. توجه داشته باشید که متدهای static نمیتوانند abstract باشند.
متغیرهای عضو کلاس(فیلدها) را میتوان بصورت ثابت const یا readonly اعلان کرد. فیلدهایی که با واژه const اعلان میشوند، در هنگام فراخوانی باید مقدار اولیه بگیرند. فیلدهایی که با واژه readonly اعلان میشوند، میتوانند در سازنده کلاس مقدار اولیه بگیرند، ولی پس از آن مقدارشان قابل تغییر نیست.
گاهی خوب است که اشیا، متدها را بعنوان پارامترها به متدهای دیگر ارسال کنند اما سی شارپ اجازه نمیدهد که مرجع های متد، مستقیما بعنوان پارامتر به متدهای دیگر ارسال شوند به همین دلیل برای ما delegate را قرار داده است.
دلیگیت ها در C# در واقع اشاره گری به متدها هستند. کاربرد اصلی آن جایی است که میخواهیم قطعه کدی را اجرا کنیم اما تا زمان اجرای برنامه آن قطعه کد مشخص نیست کدام قسمت از برنامه است.
تعریف مجدد عملگرها، شکل دیگری از چندریختی است . از تعریف مجدد عملگرها وقتی استفاده میشود که انجام عملیات، نسبت به فراخوانی عادی متد، روشن تر انجام شود. بعنوان مثال، عملگر + میتواند دو عدد صحیح یا دو عدد اعشاری را با هم جمع کند و دو رشته را با هم الحاق کند. مترجم با توجه به عملوندهای آن متوجه میشود که چه کدی باید تولید نماید. علاوه بر این در #C امکاناتی فراهم آماده است که برنامه نویس میتواند عملگرها را به دلخواه خودش تعریف کند.
کلام آخر:
خب دوستان این هم بحث چند ریختی در سی شارپ اگر به دنبال آموزش های بیشتری هستید می توانید از سایت خود مایکروسافت استفاده کنید و یا سوال خودتان را در انجمن Stack Overflow استفاده کنید چرا که جامعه ای بزرگ و فعال در زمینه سی شارپ دارد. موفق باشید.
سلام دوستان امیدوارم که حال شما خوب باشد. امروز می خواهیم دلایلی که باعث شده سی شارپ همچنان به عنوان یک زبان قدرتمند برای یادگیری باقی بماند را به شما معرفی کنی. پس تا پایان با ما همراه باشید.
دلایل یادگیری سی شارپ:
با اینکه سی شارپ در مقایسه با اجداد خود یعنی سی و سی پلاس پلاس نامی مشابه دارد، اما یادگیری آن برای افراد تازه کار بسیار ساده است. همچنین سی شارپ یک زبان امن برای یادگیری است یعنی کد های شما را در زمان کامپایل بررسی کرده و پیغام ها و خطاها را در صورت نیاز برای توقف برنامه صادر میکند و خودش حافظه را به صورت خودکار مدیریت میکند تا مجبور به تخصیص حافظه برای داده های خود نباشید.
با توجه به پشتیبانی گسترده مایکروسافت از آن، محبوبیت سی شارپ به این زودی ها از بین نمیرود. این زبان تقریبا ً به مدت بیست سال است که در توسعه برنامه های مختلف استفاده میشود و در این مدت ویژگی های فوق العاده ای به آن اضافه شده است. سی شارپ با استفاده از کتابخانه قدرتمند خود یعنی LINQ برای کنترل ساختار داده ها و اشیای کد شما طراحی شما شده است.
محیط توسعه یکپارچه مایکروسافت، ویژال استودیو نام دارد که به زبان سی شارپ نوشته شده است. در حالی که به هر زبانی در ویژوال استادیو میتوانید برنامه نویسی کنید، اما این محیط قدرتمند به صورت خاص برای زبان سی شارپ بهینه سازی شده است.
ما برای این دسته از افراد یک خبر خوب داریم و آن یادگیری سیشارپ برای بازیسازی است. شما با سیشارپ میتوانید در موتور بازی سازی یونیتی که یکی از موتورهای بازیسازی معروف و محبوب میباشد برنامه نویسی کنید. این موتور بازیسازی روز به روز در حال پیشرفت و محبوب شدن میباشد به طوری که این روزها میتواند شانه به شانه موتور بازیسازی آنریل بایستد.
فرض کنید شما بعد از ماه ها وقت گذاشتن یک برنامه نوشتید که خیلی هم محبوب شده و اکنون قصد دارید که برنامه تان را برای یک سیستم عامل دیگر مثل اندروید نیز منتشر کنید تا کاربران اندروید نیز بتوانند از برنامه شما استفاده کنند. اگر زبانی که برنامه را با آن نوشته باشید فقط مخصوص یک سیستم عامل باشد شما مجبور خواهید شد برای انتشار برنامه تان به زبان دیگری روی بیاورید و چه بسا که باید علاوه بر زمان برای نوشتن برنامه تان زمانی نیز برای یادگیری آن زبان بگذارید. اما اگر شما با زبانی مثل زبان سیشارپ یک برنامه نوشته باشید به راحتی میتوانید آن را برای بسیاری از سیستم عامل ها منتشر کنید. پس این برای یک برنامه نویس میتواند خیلی مهم باشد که برنامه اش بتواند در هر پلتفرمی اجرا شود.
اگر شما قصد داشته باشید که اپلیکیشن های موبایل طراحی کنید برای اندروید باید زبان java را یاد بگیرید و برای iOS باید swift را یاد بگیرید. یعنی برای طراحی و توسعه اپلیکیشن های موبایل باید دو زبان مجزا را یاد بگیرید که این خود، کار سخت و زمان بری میباشد. زامارین برای مقابله با این مشکل طراحی شده است و شما میتوانید با کدنویسی سیشارپ برای هر دو سیستم عامل موبایل یعنی iOS و اندروید برنامه خود را کمپایل و همینطور از یک زبان برنامه نویسی میتوانید برای طراحی رابط گرافیکی در هر دو سیستم عامل موبایل نیز بهره ببرید.
اول از همه، اندازه جامعه مهم است زیرا جامعه برنامهنویسی بزرگتر، پشتیبانی بیشتری را نیز فراهم خواهد کرد. همانطور که شما در دنیای برنامهنویسی قدم میگذارید، به زودی متوجه خواهید شد که پشتیبانی امری حیاتیست. علاوهبراین، هر چه جامعه بزرگتر باشد، افراد بیشتری هم برای ساخت ابزارهای مفید جهت توسعه زبانی خاص وجود خواهند داشت و سی شارپ نیز بزرگترین جمعه پشنیبانی را دارد از انجمن ها مثل استک آور فلو گرفته تا خود شرکت مایکروسافت و ......
و حیاتی ترین دلیل یادگیری سی شارپ تضمین موقعیت شغلی شما در ایران و خارج از کشور است و برای اطمینان پیدا کردن از این موضوع میتوانید به آگهی های استخدامی زبان سی شارپ سر بزنید.
البته این نکته هم باید در نظر بگیرید که یادگیری سی شارپ مقدمه ای برای فعالیت شما در حوزه وب، طراحی اپلیکیشن و .... است که برای متخصص شدن در هر حوزه باید تکنولوژی مربوط به آن را به خوبی یاد بگیری. مثلا اگر قصد دارید به یک طراح وب تبدیل شوید بعد از حرفه ای شدن در زبان سی شارپ باید به سراغ ASP.Net MVC Core بروید.
خب دوستان امیدوارم که مطلب مورد رضایت شما قرار گرفته باشد. شما هم اگر دلیل دیگری را میشناسید در قسمت نظرات با ما به اشتراک بگذارید.
یک زبان شیء گرای محض که این قابلیت را به ما می دهد که برنامه های قابل نگهداری ماژولار و کدهای قابل استفاده مجدد را ایجاد نماییم.
دارای یک سیستم بسیار کارآمد برای پاک کردن و حذف تمام زباله ها در سیستم است یعنی اگر شما متدی نوشته باشید ک در هیچ جا از آن استفاده نکرده باشید این زبان آن را به صورت خودکار حذف میکند.
زبان برنامه نویسی سی شارپ دارای یک قابلیت عمده در زمینه پشتیبان گیری قوی حافظه می باشد و در هنگام بروز اختلال در حافظه و سایر مشکلات مشابه خللی ایجاد نمیشود و دارای عملکردی کاملاً عالی نسبت به سایر زبان های دیگر می باشد.
کتابخانه های class غنی ، پیاده سازی بسیاری از توابع را آسان می کنند.
اگر روی دستگاه خود ، فریم ورک NET. را نصب کرده باشیم ، برنامه های ما به خوبی اجرا خواهند شد.
برنامه های کاربردی نوشته شده در فریم ورک NET. ، یکپارچگی و تفسیرپذیری بهتری با دیگر فناوری های NET. خواهند داشت. در واقع #C بر روی CLR اجرا می شود ، و این امر یکپارچگی آن را با مؤلفه های نوشته شده در زبان های دیگر ساده می سازد.
مفاهیم قراردادی در متدهای get-set ، باعث خواناتر شدن کدها می شوند. هم چنین در #C ما نیازی به نگرانی در مورد فایل های هدر نداریم.
هنگامی که در بستر مایکروسافت کار می کنیم ، برای همه چیز ، ابزاری داریم. از این رو ، اساساً ، ما نیازهای خود را با ابزار مطابقت می دهیم و از آنها استفاده می کنیم.