تبلیغات
دانلود سورس پروژه های مختلف برنامه نویسی، آموزش برنامه نویسی - ایجاد اشیاء در سی شارپ – Object Initialization
دانلود سورس پروژه های مختلف برنامه نویسی، آموزش برنامه نویسی
دانلود رایگان سورس پروژه
سایت برنامه نویسی تک کدر takcoder.ir


آموزش برنامه نویسی با استفاده از نوین ترین روش و ارائه پروژه های نمونه و مجموعه عظیم سورس کدهای آماده برای شما دوستان

مدیر سایت : Yahya Taherzadeh
نویسندگان
نظرسنجی
زبان برنامه نویسی مورد علاقه شما؟






ایجاد اشیاء در سی شارپ – Object Initialization

بعد از اینكه یك كلاس رو ایجاد كردیم باید بتوانیم از آن كلاس استفاده كنیم. اصولا برای استفاده از یك كلاس می توانیم از آن كلاس یك شیء بسازیم و سپس به آن شیء اطللاعات ست كنیم و از رفتار های آن كلاس استفاده كنیم. همانطور كه قبلا هم گفتم حافظه رو می توان به دو قسمت Stack و Heap تقسیم كرد. برای ساختن یك شیء (object) باید ابتدا یك متغییر از جنس كلاس مورد نظر ایجاد كنیم: .....

Person p;

 در حقیقت متغییر p یك رابطه (Reference) به شیء مورد نظر خواهد بود. پس یك شیء رو به آن متغییر نسبت می دهیم. دقت داشته باشین كه reference شما در حافظه Stack و خود شیء شما در حافظه Heap ساخته خواهد شد:

کد:

p = new Person();

البته در تمامی پست ها من برای اینكه بتوانم به شیء مورد نظرم دسترسی داشته باشم reference رو یك object صدا خواهم زد اما دقت داشته باشین كه در حقیقت p یك refernce است و نه objcet اما بدون آن reference ما به آن object دسترسی نخواهیم داشت (اگرobject رو یك تلویزوین در یك محلی عمومی مثل فرودگاه در نظر بگیرین بدون داشتن remote control نمی توانین كانال تلویزیون رو عوض كنین. پس این reference یا متغییر p در نقش یك remote control برای شیء است كه ما در حافظه Heap داریم).

خطوط بالا رو می توان در یك خط خلاصه كرد و همان موقع كه یك reference می سازیم همان موقع هم با یك object جدید مقدار دهی نمائیم:

کد:

Person p = new Person();

p.Name = “Ali”;

p.Age = 20;

در این حالت یك متغییر در حافظه Stack و یك شیء در حافظه Heap. اما با استفاده reference كه داریم (p) می توانیم مقادیر object مورد نظرمون رو ست كنیم و …
دقت داشته باشین كه وقتی شما از كلمه new و سپس اسم كلاس با استفاده از پرانتز استفاده می كنین, در واقع یك شیء جدید در حافظه ساخته می شود و اگر این شیء رو به یك متغییر مثل p كه قبلا ساخته شده بود مقدار دهی كنین یك رابطه جدید و در نتیجه مقادیرتان را از دست خواهید داد:

یك متغییر در حافظه Stack و یك شیء در حافظه Heap. اما با استفاده reference كه داریم (p) می توانیم مقادیر object مورد نظرمون رو ست كنیم و …
دقت داشته باشین كه وقتی شما از كلمه new و سپس اسم كلاس با استفاده از پرانتز استفاده می كنین, در واقع یك شیء جدید در حافظه ساخته می شود و اگر این شیء رو به یك متغییر مثل p كه قبلا ساخته شده بود مقدار دهی كنین یك رابطه جدید و در نتیجه مقادیرتان را از دست خواهید داد:
مثال:

Person x = new Person();

x.Name = “Reza”;

x.Age = 44;


x = new Person();

Console.WriteLine(x.Age); // خروجی این خط صفر خواهد بود

x.Name = “Ali”;

دقت نمائید كه objectی كه مقادیر Reza و 44 را داشته است توسط Garbage Collection به دلایلی كه قبلا هم توضیح دادیم از حافظه حذف خواهد شد.

حالا با توجه به مثال هایی كه صحبت شد به نظر شما خروجی خطوط زیر چه خواهد بود؟

Person myPerson = new Person();

myPerson.Name = “Masoud”;

myPerson.Age = 33;

Person yourPerson = myPerson;

yourPerson.Name = “Amir”;

yourPerson.Age = 23;

Console.WriteLine(“myPerson Info: Name:{0}, Age:{1}”,myPerson.Name,myPerson.Age);

Console.WriteLine(“yourPerson Info: Name:{0}, Age:{1}”,yourPerson.Name,yourPerson.Age);

خروجی كه این چند خط كد دارند باید به شكل زیر باشد:

myPerson Info: Amir, Age: 23

yourPerson Info: Amir, Age : 23





نوع مطلب : آموزش، سی شارپ، 
برچسب ها : object، ایجاد شی، شئ در سی شارپ، یادگیری سی شارپ، برنامه نویسی، آموزش برنامه های کاربردی، برنامه نویسی کاربردی،
لینک های مرتبط :
Yahya Taherzadeh
جمعه 22 آذر 1392
یکشنبه 11 تیر 1396 11:11 ب.ظ
Hello, Neat post. There's an issue along with your site in web explorer,
might test this? IE still is the marketplace leader and a good element of
people will leave out your fantastic writing due to this
problem.
چهارشنبه 3 خرداد 1396 08:31 ب.ظ
Helpful information. Fortunate me I found your web site accidentally, and I
am surprised why this twist of fate didn't came about earlier!
I bookmarked it.
شنبه 9 اردیبهشت 1396 04:31 ب.ظ
My brother recommended I would possibly like this blog.

He used to be totally right. This publish truly made my day.
You cann't believe just how a lot time I had spent for this info!
Thank you!
یکشنبه 27 فروردین 1396 11:36 ب.ظ
Valuable info. Lucky me I found your site by chance, and
I'm shocked why this accident didn't took place in advance!
I bookmarked it.
جمعه 25 فروردین 1396 09:10 ب.ظ
There's certainly a great deal to learn about this topic.
I love all of the points you have made.
یکشنبه 20 فروردین 1396 11:24 ق.ظ
I absolutely love your blog.. Pleasant colors & theme. Did you build this amazing site yourself?
Please reply back as I'm planning to create my own blog and would like to find out where
you got this from or exactly what the theme is called. Thank you!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر




صفحات جانبی
آمار وبلاگ
تاییدیه پرداخت
تبلیغات
به سایت تک کدر خوش آمدید