advertise laitec sharif univercity
سورس پروژه پایانی آزمون گیری با زبان سی شارپ و SQL

سورس پروژه پایانی آزمون گیری با زبان سی شارپ و SQL

18000 تومان
دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

دانلود مجموعه 100 سورس ساده و ابتدایی با سی پلاس پلاس

14000 تومان
دانلود مقاله ای در مورد الگوریتم  کرم شب تاب FireFly در هوش مصنوعی

دانلود مقاله ای در مورد الگوریتم کرم شب تاب FireFly در هوش مصنوعی

10000 تومان
دانلود پروژه وب سایت اشعار با ASP.NET و SQL

دانلود پروژه وب سایت اشعار با ASP.NET و SQL

10000 تومان
دانلود سورس اندروید اپلیکیشن افزایش سرعت گوشی

دانلود سورس اندروید اپلیکیشن افزایش سرعت گوشی

18000 تومان

مفهوم چندریختی در زبان سی شارپ #C

چندریختی در زبان #C ، اجازه میدهد تا برنامه هایی بنویسیم که انواع مختلفی از کلاسهای مرتبط را به شکل کلی اداره کنند و افزودن کلاسهای جدید به سیستم را تسهیل میکند. همچنین میتوان سیستم هایی پیاده سازی کرد که به آسانی بسط پذیر باشند
مفهوم چندریختی در زبان سی شارپ #C

مفهوم چندریختی در زبان سی شارپ #C

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

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

چندریختی در زبان #C به روشهای مختلفی وجود دارد:

♦ متدهای مجازی (متدهای چندریختی)

متد مجازی، متدی است که در کلاس پایه با واژه virtual اعلان میشود و در یک یا چند کلاس مشق دوباره تعریف میشود. بنابراین هر کلاس مشتق میتواند نسخه خاصی از متد مجازی را داشته باشد. در کلاس مشتق، هنگام تعریف مجدد متد مجازی، باید آنرا با واژه کلیدی override مشخص کرد.اگر بخواهید در کلاس مشتق متدی همنام با کلاس پایه داشته باشید، ولی متد مجازی  نباشد، به معنای این است که میخواهید متد مجازی ایجاد کنید که هیچ ربطی به کلاس مشتق ندارد. در این صورت در کلاس مشتق این متد را با واژه new مشخص کنید.

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

 

♦ کلاسها ومتدهای انتزاعی

مواردی وجود دارد که کلاسهایی ایجاد میشوند که ایجاد اشیا از آنها ممکن نیست. بعنوان مثال، اگر عمق سلسله مراتب وراثت کلاسها بسیار زیاد باشد، کلاسهایی که در بالای سلسله مراتب وجود دارند، دقیقا نمیتوانند نیازهای واقعی کلاسهای مشتق خود را بشناسند. بهمین دلیل این کلاسها طوری طراحی میشوند که مشترکات کلاسهای مشتق خود را نگه دارند و کلاسهای مشتق، اعضای مورد نظرتان را پیاده سازی کنند. چنین کلاسی، ماهیت متدها و خواصی را که کلاسهای مشتق باید پیاده سازی کنند، تعیین مینماید، ولی خودش آنها را پیاده سازی نمیکند. این کلاسها را کلاسهای انتزاعی گویند. کلاسهای انتزاعی قابل نمونه سازی نیستند، کلاسهای پایه کلاس های مشتق محسوب میشوند، شامل متدها و خواص انتزاعی اند ، همچنین کلاسهای انتزاعی با واژه abstract مشخص میشوند. توجه داشته باشید که متدهای static نمیتوانند abstract باشند.

 

♦ delegate ها

متغیرهای عضو کلاس(فیلدها) را میتوان بصورت ثابت const یا readonly اعلان کرد. فیلدهایی که با واژه const اعلان میشوند، در هنگام اعلان باید مقدار اولیه بگیرند. فیلدهایی که با واژه readonly اعلان میشوند، میتوانند در سازنده کلاس مقدار اولیه بگیرند، ولی پس از آن مقدارشان قابل تغییر نیست.

گاهی خوب است که اشیا، متدها را بعنوان پارامترها به متدهای دیگر ارسال کنند. #C اجازه نمیدهد که مرجع های متد مستقیما بعنوان پارامتر به متدهای دیگر ارسال شوند، برای این کار delegate را فراهم کرده است. delegate ها کلاسهایی هستند که مجموعه ای از مرجع هایی به متدها را بسته بندی میکنند. شیء delegate که حاوی مرجع های متد است میتواند به متد دیگر ارسال شود. شیء به جای ارسال مستقیم مرجع به متد نمونه delegate را ارسال میکند که شامل مرجع هایی به متدهایی است که میخواهیم به آن ارسال کنیم.متدی که مرجع delegate را دریافت میکند، میتواند متدهای موجود در delegate را فراخوانی کند.

 

 

♦ تعریف مجدد عملگرها

تعریف مجدد عملگرها، شکل دیگری از چندریختی است . از تعریف مجدد عملگرها وقتی استفاده میشود که انجام عملیات، نسبت به فراخوانی عادی متد، روشن تر انجام شود. بعنوان مثال، عملگر + میتواند دو عدد صحیح یا دو عدد اعشاری را با هم جمع کند و دو رشته را با هم الحاق کند. مترجم با توجه به عملوندهای آن متوجه میشود که چه کدی باید تولید نماید. علاوه بر این در #C امکاناتی فراهم آماده است که برنامه نویس میتواند عملگرها را به دلخواه خودش تعریف کند. برای تعریف مجدد عملگرها از واژه کلیدی operator بصورت زیر استفاده میشود:

TypeName   operator   op (parameters)

{

      ...

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 



1
نظرات
  • user avatar محمد:
    ۱۹:۳۰:۵۹ __ ۱۳۹۵/۰۴/۲۷

    سلام خسته نباشید میشه در مورد sender ها برای مثالnumberedlabel)sender)توضیح بدید.

نظر خود را ارسال کنید



نام:
ایمیل:
دیدگاه:
captcha
کد امنیتی :


advertise
آشنایی با چندریختی در زبان #C چندریختی در زبان برنامه نویسی سی شارپمفهوم چندریختی در برنامه نویسی شیءگرامفهوم چندریختی در زبان برنامه نویسی سی شارپآموزش چندریختی در زبان برنامه نویسی سی شارپچندریختی در زبان برنامه نویسی چیست?آشنایی با مفهوم چندریختی در زبان برنامه نویسی سی شارپتبلیغات ارزان سایت آموزش برنامه نویسیتبلیغات مخصوص طراحان وب سایتتبلیغات در سایت برنامه نویسیتبلیغات اینترنتی برای برنامه نویساندر آغوش مینیمالیسممنوی همبرگر با سه خط افقی که روی یکدیگر قرار گرفته اند نشانه چیست؟ سوئیچ به یک ستون واحدتبدیل متن ساده به وبلاگ و سایت های پویا با React.jsکتابخانه sass برای استفاده آسان تر از آنکتابخانه سطح بالا برای اتوماتیک سازی اعمال مرورگر لیست برچسب ها
تمامی حقوق این سایت اعم از محتوی ، تصاویر ، قالب و ... متعلق به گروه مهندسی وب سایت سورس کد می باشد.
SourceCodes.ir ، افقی روشن برای برنامه نویسان ، از مبتدی تا حرفه ای

پیشنهادات ویژه سورس کد

پکیج ویژه پروژه پایانی رشته کامپیوتر دانلود مجموعه 70 پروژه کاربردی سی شارپ وب سایت فروشگاه با php