سی شارپ

|

آموزش سی شارپ (قسمت بیست و چهارم)

آموزش های گذشته که در اختیار شما قرار داده شد سطح مقدماتی آموزش C# بود که شما با انواع داده ای صحیح ، اعشاری ،
string ، شمارشی و همچنین آرایه ها ، کلاس ها ، شرط ها ، دستورات شرطی ، حلقه ها و دستورات شرطی و همچنین حلقه هاآشنا شدید.

از این پس در سطح متوسط و در آینده سطح پیشرفته ی زبان C# ما به آموزش تکنیک ها میپردازیم. یعنی برای یک
سری از فعالیت های خاص solution هایی را در اختیار شما قرار میدهیم که به شکل pattern از قبل ارائه شده است. همانطورکه در آموزش های گذشته گفته شد ما pattern ی به نام single turn را معرفی کردیم که و از آن برای کلاس هایی که بر فرضمیخواستیم فقط یک object داشته باشیم استفاده کردیم. این نوع pattern ها به design pattern معروف هستند و ما از این پس بهآموزش این pattern ها و تکنیک هایی که در زبان برنامه نویسی استفاده میشود میپردازیم.
در سطح مقدماتی تمام فعالیت های ما در کلاس program بود و کلاس دیگری به آن اضافه نمیکردیم و اگر کلاسی هم میخواستیمداخل کلاس program اضافه میکردیم. در این آموزش ما علاوه بر کلاس program که بصورت built in موجود است کلاسهای دیگری هم داریم از جمله کلاس person که قبلا از آن در برنامه ها هم استفاده کرده ایم. با استفاده از "///" توضیحاتی رابرای شما قرار داده ایم و به شما هم این کار را پیشنهاد میکنیم تا ببینید چقدر در برنامه به شما کمک میکند.

آموزش سی شارپ(قسمت بیست و چهارم)

کلاس person یک سازنده پیشفرض با دو ورودی name )نام( و family )نام خانوادگی( و سازنده دیگری با 4 ورودی نام ، نامخانوادگی ،آدرس و شماره تلفن که آدرس و شماره تلفن ما از جنس complex است یعنی داده مستقیما از جنس یک کلاس دیگرتعریف شده است. هنگامی که ما میخواهیم یک داده را تعریف کنیم یک object از آن کلاس را تعریف کنیم و با نوشتن آن objectو با زدن یک دات ).( بعد از آن ما میتوانیم به تمامی اجزای آن کلاس دسترسی داشته باشیم.

آموزش سی شارپ(قسمت بیست و چهارم)

برای آنکه اعلام کنیم name و family را از سازنده ی بالا دریافت کند از دستور

:this(name,family)

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

آموزش سی شارپ(قسمت بیست و چهارم)

همانطور که در تصویر مشاهده میکنید و در بخش property ها هم قبلا گفته شد بهتر است ما یک سری فیلد های private داشتهباشیم که با "_" شروع میشود و آنها را با property هایمان متناظر کنیم. در این مثال ما 4 فیلد private داریم. که 2 تا از آنها ازجنس string میباشند و یکی از جنس کلاس address_person و دیگری از جنس phone_person میباشد. همانطور که گفتیمباید متناظر با آنها property تعریف میکنیم. در property ما دو دستور get و set داریم.
در get باید فیلد متناظر ما return شود )مثلا property ی Name مقدار _name را return میکند.( و در set باید _nameبرابر با مقدار property در نظر گرفته میشود.
مزیت این روش دسترسی غیر مستقیمی است که ما به این فیلد داریم و شروطی که ما میتوانیم برای set کردن یک مقدار داشتهباشیم.

آموزش سی شارپ(قسمت بیست و چهارم)

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

آموزش سی شارپ(قسمت بیست و چهارم)

یک property به نام showinfo داریمکه فقط get دارد. همانطور که گفته بودیم این property ها readonly هستند و فقطمیتوانیم آنها را بخوانیم. آنهایی که فقط set دارند هم writeonly هستند .
در اینجا ما یک فرمتی از string را که name و family را میگیرد.اعداد 0 و یک اشاره به اولین و دومین مقدار بعد از “,” دارد.

آموزش سی شارپ(قسمت بیست و چهارم)

نهایتا به طور خلاصه ما کلاس person را بررسی کردیم که خودش شامل دو کلاس دیگر بود. در این بخش ما بصورت جداگانه بهاین دو کلاس میپردازیم.
کلاس address_Person ما به شکل public تعریف شده که سازنده پیشفرض خودش را دارد و سازنده ای با دو ورودی دارد کهیکی از آنها address و دیگری id میباشد که مقدار دهی کردیم در سازنده دوم. یعنی زمانی که یک کاربر یک
Adress_person یا object را new میکند میتواند با ")" و "(" این کار را انجام دهد و سازنده این مقادیر را میگیرد به
property ها میدهد که متناظر با آنها دو فیلد private نیز وجود دارد. علاوه بر آن یک property به نام ShowAdress وجوددارد که قرار است فقط آدرس و id را نشان دهد.

آموزش سی شارپ(قسمت بیست و چهارم)

برای phoneperson ههم به همین شکل کابر هم با ")" و "(" و هم با دادن مقادیر به mobile و home میتواند new کند. بعد ازورود اطلاعات این مقادیر داخل property های مربوطه ریخته میشوند.
در اینجا به بررسی لایه program میپردازیم. در لایه program ما یک object از جنس کلاس person ایجاد کرده ایم و نامشرا person_1 قرار داده ایم و new person را برای آن در نظر گرفته ایم که از سازنده پیش فرضی که هیچ مقداری را دریافتنمیکند استفاده کرده ایم. برای استفاده از فیلد ها و property ها ما از دات "." استفاده میکنیم .
در شکل زیر شما میتوانید نحوه مقدار دهی فیلد ها و property ها را میبینید. بای مثال در اینجا ما نام علی نعیمی را وارد کردیم.و "علی" را در person_1.name و "نعیمی" را در person_1.family قرار داده ایم.

در اینجا یک object جدید از کلاس person داریم و این بار از سازنده دوم استفاده میکنیم و به آن مقدار رضا روزبهانی دادیم.برای سازنده سوم هم که علاوه بر نام و نام خانوادگی ، آدرس و شماره تلفن هم به عنوان ورودی دارد یک object جدید از کلاسperson ایجاد کرده ایم که هنگام new کردن هر 4 مقدار را میگیرد. چون address_person و phone_person هردوcomplex type هستند یعنی خودشان از جنس یک کلاس دیگر هستند زمانی که در سازنده میخواهیم آنها را مقدار دهی کنیم باید آنهارا new کنیم. در اینجا چون address_person و phone_person هرکدام سازنده دارند ، هنگامی که میخواهیم آنها را newکنیم به سازنده ها و نوع ورودی ها مراجعه میکنیم برای مثال برای address_person به تابع public Adress_person(string address , int id) مراجعه کردیم و هنگام مقدار دهی برای object سوم به این شکل عمل میکنیم.درآخر هم میخواهیم مقادیر را نماش دهند که البته این روش بهترین روش محسوب نمیشود. Console.Writeline باعث میشود تا درمحیط console بتوانیم مقداری را نمایش دهیم. مقادیر را با ترتیب ذکر شده چاپ مینماید. \r و \n هم باعث میشود تا مقادیر در خطبعدی چاپ شود.در اینجا مقدار اول person_3.ShowInfo میباشد. ShowInfo در کلاس person میباشد. ما showInfo رافراخوانی میکنیم. مقدار دوم ما یعنی person_3.personAddress.showAddress را نمایش میدهد. person_3 یک object ازکلاس person میباشدو زمانی که ما از "." استفاده میکنیم به تمامی فیلد ها ، متد ها و property ها که در اینجا ما بعد از "." ما متدرا داریم. چون این متد خود از جنس کلاس است با نوشتن "." ما به متد های کلاس personAddress personAddress هم
میتوانیم دسترسی داشته باشیم و همانطور که میبینید در اینجا ما متد ShowAddress را فراخوانی کرده ایم.

آموزش سی شارپ(قسمت بیست و چهارم)

برای اجرا کلید f5 را بزنید تا برنامه در محیط console نشان داده شود.

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

علی نعیمی

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

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