سی شارپ

|

اموزش c sharp

خب در این مقاله همانطور که میبینید یک کلاسی داریم به نام کلاس complex که کلاس complex ما دوتا فیلد x و y داره و همچنین سازنده ی پیش فرض داره یک سازنده داره که x و y رو دریافت میکنه و برابر با مقدار فیلد ها قرار میده و یدونه متد هم داریم به نام show که void هست مقداری رو برنمیگردونه و xوy رو برای ما نمایش میده.

اموزش سی شارپحالا ما میخواستیم عملیاتی که به صورت عملیات حسابی توی c# باهاشون میتونیم کار بکنیم رو توی این فایل آموزشی مورد بررسی قرار بدیم.به عنوان مثال شما فرض بکنید که شما میخواید فیلدهایی که از یک کلاس دارید رو به صورت یک فرمول در بیارید و باهاش بخوایید کار بکنید.ما تا اینجا خب خیلی راحت اگه میخواستیم 2 مقدار integer رو باهم جمع بکنیم عمل گر + رو قرار میدادیم و داخل یک متغییر قرار میدادیم وحالا یا بسته به نوع کارمون از + یا بقیه عمل گر ها میتونستیم استفاده بکنیم ولی برای کلاس ها باید چکار بکنیم.نگاه کنید من کلاس complex رو که ایجاد کردم 2 تا فیلد integer داره که xوy هست.حالا من میخوام یک عملیات جمع برای این کلاس بنویسم که حالا اگه قرار شد عملیات جمع رو برای این کلاس اعمال بکنیم xوy باهم بشه که روشون عملیات جمع رو انجام داد.برای این کار وقتی که ما میخواییم یک overload برای عمل گر + یا حالا بقیه عمل گرها بنویسیم کدش به این صورت هست که باید خود عمل گر operator رو ما به صورت overload براش کد بنویسیم به این صورت که میگیم public static به خاطر این که خود operator به صورت static هست و اجزای static رو میپذیره حالا یک نامی براش در نظر میگیریم نام complex رو براش در نظر گرفتیم که در اصل نام خود کلاسمون هست.و operator حتما باید مشخص بشه که یک عمل گر هستش یعنی معرف عمل گر شماست و بعدش شما دقیقا باید اون عمل گری رو که میخوایید قرار بدید.و حالا به عنوان مثال من میخوام 2تا object از کلاس complex اینجا به عنوان ورودی برای این عمل گر که خودم دارم مینویسم قرار بدم و حالا داخل اون یک سری عملیات رو انجام بدم اینجا همانطور که میبینید این عمل گر من 2تا ورودی میگیره که هر 2تاش از جنس کلاس complex هست که یه نامی رو برای اون object قرار دادم.لازم به ذکر است که بدونید الان این m و n اگر دات رو بزنید شما به 2تا فیلد xوy شون دسترسی پیدا میکنید.داخل این operator که خودم دارم مینویسم اومدم از کلاس complex یک object ایجاد کردم نامش رو قرار دادم oresult و new کردم و حالا oresult خودش object هست از کلاس complex یعنی دات رو بزنم به فیلد ها دسترسی دارم.همانطور که میبینید به فیلد 1 دسترسی داشتم.حالا x این رو میخوام به عنوان مثال میخوام قرار بدم با این object که از خود operator به عنوان ورودی دریافت کردم به علاوه این object دوم که بازم به صورت ورودی دریافت کردم یعنی میخوام xوy این 2تارو باهمدیگه جمع بکنم.به این شکل که برای این x کلیه بیام x این رو با x این جمع بکنم همانطور که میبینیدm.x+n.x و برای oresult.y هم m.y+n.y کردم. این فرمول ساده ax+by را ما در اینجا پیاده سازی کردم برای این کلاس و در نهایت چون کلاس ما از جنس complex هست باید حتما یک return رو داشته باشه چون ما این متد رو اگه خاطرتون باشه گفتیم که متدهامون از همون جنسی که باشن باید از همون جنس return بکنیم اینجا هم متد استاتیک complex ما چون از جنس خود complex هست یعنی کلاس complex در نهایت باشد باید یک object از جنس خود کلاس complex رو return بکنیم که اینجا وقتی این عملیات انجام شده یعنی xوy ها باهم جمع شده ما این رو return کردیم.

اموزش سی شارپمیتونستیم return رو به این صورت بنویسیم که توی یک خط باشه.یعنی اینجا یک return بکنیم یک new complex ایجاد بکنیم یعنی دیکه به جای این 4 خط کد این یک خط کر رو هم میتونستیم بنویسیم یعنی همه عملیات تو این یک خط کد انجام بشه.یعنی کلاسمون یدونه new بشه جمع بشه و حالا به عنوان پارامتر ارسال بشه.

حالا برای ضربدر هم اومدیم همین کارو کردیم.نگاه کنید متد ما static هست complex.operator این بار ضرب رو براش در نظر گرفتیم این ظرب ما ورودی که داره یک integer با نام آلفا یا هر نام دیگه ایی دریافت میکنه و یک object در کلاس complex داخل این هم اومدیم یک complex new کردیم و xوy را برابر با alpha*m.x قرار دادیم یعنی اون integer رو هم در اون اعمال کردیم که به عنوان مثال اون xوy ما هم یک ضریبی رو داشته باشن و ما در نهایت oresult رو ارسال کردیم.این که ما در این داخل چیکار میکنیم مهم نیست این اون تفکریه که شما نیاز دارید پیاده سازی کنید ولی ما بحث اصلیمون اینه که ما این operator رو چجوری پیاده سازی بکنید.میتونید هرطور که دلتون میخواد ورودی به این بدید و ما اینجا عملیات رو انجام بدیم.که حالا توی پیاده سازیش میبینیم وقتی ما عملیات ضرب و به علاوه را که میخواییم برای این کلاس اعمال بکنیم دقیقا این پیاده سازی که اینجا داریم اونجا هم پیاده سازی میشه .

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

دریافت آخرین مطالب وبلاگ در کانال داتینه

علی نعیمی

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

نظرات
نظر بدهید