نمایش نتایج: از شماره 1 تا 10 , از مجموع 15

موضوع: آموزش سي شارپ

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #7
    »»»---(¯*¤پری سایت¤*¯)--»
    تاریخ عضویت
    Sep 2010
    محل سکونت
    ı̴̴̡̡̡ ̡͌l̡̡̡ ̡͌l̡ ̴̡ı̴̴̡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫
    نوشته ها
    1,056
    تشکر تشکر کرده 
    209
    تشکر تشکر شده 
    680
    تشکر شده در
    248 پست
    قدرت امتیاز دهی
    87
    Array

    پیش فرض

    بعد از اينكه يك كلاس رو ايجاد كرديم بايد بتوانيم از آن كلاس استفاده كنيم. اصولا براي استفاده از يك كلاس مي توانيم از آن كلاس يك شيء بسازيم و سپس به آن شيء اطللاعات ست كنيم و از رفتار هاي آن كلاس استفاده كنيم. همانطور كه قبلا هم گفتم حافظه رو مي توان به دو قسمت 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;
    به شكل زير دقت كنين:

    objectinitilization
    اين در واقع اتفاقي است كه با توجه به خط بالا مي افتد , يعني يك متغيير در حافظه 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";
    شكل زير اتفاقاتي كه در خطوط با مي افتد را تفسير مي نمايد:


    GarbageCollection

    دقت نمائيد كه 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.Write Line("yourPerson Info: Name:{0}, Age:{1}",yourPerson.Name,yourPerson.Age);

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



    کد:
    myPerson Info: Amir, Age: 23yourPerson Info: Amir, Age : 23

    بنــــــــــــد نمی آید دوست داشتنت !
    مثل آنکه شاهــــــــــرگ
    احســـــــــــــاسام را بریده باشی !

    141
    142
    85214085768964716462



  2. کاربر مقابل از P a R y A عزیز به خاطر این پست مفید تشکر کرده است:


برچسب ها برای این تاپیک

علاقه مندی ها (بوک مارک ها)

علاقه مندی ها (بوک مارک ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

http://www.worldup.ir/