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

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

Threaded View

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

    پیش فرض

    icon1

    توي آخرين پست در مورد متد ها صحبت كرديم اما اگر دقت كرده بوديد متوجه مي شديد كه ما تا اينجا از يك متد استفاده كرده ايم كه ننوشته ايم! به كد زير دقت كنين:



    کد:
    Person p = new Person();
    همانطور كه قبلا هم گفتم براي استفاده از متد ها كافيه اسم متد رو با استفاده از () بنويسيم. كد بالا نيز اسم يك متد به نام ()Person ذكر شده است:


    سازنده ها در سي شارپ - Constructors in CSharp
    سازنده (Constructor) متدي است هم نام با كلاس كه چه بنويسيم (تايپ كنيم) و چه ننويسيم بر روي كلاس ها وجود دارد. همانطور كه قبلا هم ديديد من براي كلاس Person متدي هم نام با كلاس ننوشتم اما مي توانستم از اين متد در كنار كلمه new استفاده كنيم. كلمه new فقط براي ايجاد كردن يك شيء در حافظه در كنار نام متد استفاده مي شود. پس دقت داشته باشين كه وقتي ما يك reference copy از يك شيء تهيه ميكنيم در واقع فقط يك كپي از آدرس حافظه همان شيء را داريم (مثل 2 ريموت كنترل به يك تلويزويون) , اما وقتي از new به همراه اسم متد استفاده مي كنيم يك شيء جديد در حافظه داريم.

    سازنده پيشفرض - Default Constructor
    سازنده پيش فرض يا همان Default Constructor متدي است هم نام با كلاس كه پارامتر ورودي ندارد و شما به صورت پيش فرض يك ورژن از سازنده ها رو در كلاستان دارين. به اين معني كه حتي وقتي كلاس شما داراي هيچ عضوي نيست (مثل اين كلاس Emp ) باز داراي يك متد سازنده يا همان Constructor مي باشد. البته اين به اين معني نيست كه شما نمي توانيد سازنده ها را تايپ كنين:
    [code]
    public class Emp
    {

    }

    public class Student
    {
    public Student()
    {
    // default constructor
    }
    }
    [code]

    در هر دو كلاس بالا شما داراي default constructor مي باشد پس مي توانين كه كد هاي زير را تايپ كنين:



    کد:
    Emp e = new Emp();Student st = new Student();
    نكته بسيار مهم استفاده است كه شما مي توانين از Constructor ها داشته باشيد. دقت كنين كه وقتي شما كدي را داخل block of code يك سازنده از يك كلاس مي نويسيد مادامي كه از اين كلاس شيء جديد ساخته مي شود كدي كه داخل constructor نوشته شده نيز اجرا خواهد شد در نتيجه شما با استفاده از سازنده ها اين توانمندي را خواهيد داشت كه در زمان ساخته شده هر شيء كد مورد نظرتان را اجراء نمائيد.

    فرض كنين كه من مي خواهم هر زماني كه يك object از كلاس Emp ساخته شد يك جمله در محيط كنسول چاپ شود كه يك object جديد ساخته شد. پس:


    کد:
    public class Emp{public Emp(){Console.WriteLine("New Emp Object Created ...");}}
    Constructor Overloading
    در سي شارپ شما اين امكان را داريد كه ورژن هاي متفاوتي از يك متد را داشته باشين. از آنجايي كه سازنده ها هم به نوعي متد محسوب مي شوند شما مي توانيد ورژن هاي متفاوتي از سازنده ها را داشته باشين. براي مثال در نظر بگيرين كه من مي خواهم يك ورژن از سازنده براي كلاس Person بنويسم كه وقتي از اين كلاس شيء ايجاد مي شود حتما نام و سن فرد ذكر شود. پس براي اينكار سازنده اي تعريف مي كنم كه داراي دو ورودي , يكي از جنس رشته اي (براي نام) و ديگري از جنس عددي (براي سن) داشته باشد:



    کد:
    public class Person{public Person(string name, int Age){Name = name;Age = age;}public int Age;public string Name;}
    ! دقت داشته باشين كه وقتي شما يك ورژن ديگر از سازنده را مي نويسن (ورژني به غير از سازنده پيش فرض) در حالتيكه سازنده پيش فرض را تايپ نكنين ديگر امكان استفاده از سازنده پيش فرض را نداريد.

    به همين دليل در صورتيكه شما كد بالا را بنويسين ديگر امكان استفاده از سازنده پيش فرض كلاس Person وجود نخواهد داشت و اين به اين معني است كه شما به برنامه نويس اجبار خواهيد كرد كه حتما موقع ساختن شيء از كلاس شما نام و سن شيء را مشخص كند.




    کد:
    //You will get compile time error if you uncomment the next line//Person p = new Person();Person p =new Person("Ali",20);
    در صورتيكه امكان ايجاد كردن شيء از اين كلاس بدون مشخص كردن نام و سن را نياز داريد مي توانين سازنده پيش فرض را نيز تايپ نمائيد.

    نقش هاي يك برنامه نويس - Programmer 's Role
    1. Class Programmer
    2. Class Creator
    هر برنامه نويس در حين نوشتن كد مي تواند دو نقش داشته باشد و بسيار مهم است كه نقش خود را در هر لحظه بتواند تشخيص دهد.
    فرض كنين كه شما در حال نوشتن كلاس Emp هستين :



    کد:
    public class Emp{...
    در اين حالت شما يك Class Creator مي باشيد. به اين معني كه شما يك كلاس را ايجاد مي كنين فرقي نمي كند كه شما از اين كلاس استفاده كنين يا كس ديگري.

    در حالتي كه شما در كلاس Programm هستيد و داخل متد Main از كلاس Empاستفاده مي كنين شما يك Class Programm براي كلاس Emp هستيد يعني از اين كلاس استفاده مي كنين. دقت كنين كه در همين لحظه شما براي كلاس Programm يك Class Creator مي باشين.
    درك كردن اين نقش ها به شما كمك خواهد كرد كه ديد بهتري نسبت به توليد كلاس ها داشته باشين و متوجه باشين كه چه چيزي رو در اختيار چه نقشي قرار مي دهيد.
    بنــــــــــــد نمی آید دوست داشتنت !
    مثل آنکه شاهــــــــــرگ
    احســـــــــــــاسام را بریده باشی !

    141
    142
    85214085768964716462



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


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

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

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

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

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

http://www.worldup.ir/