بالا
 تعرفه تبلیغات




 دانلود نمونه سوالات نیمسال دوم 93-94 پیام نور

 دانلود نمونه سوالات آزمونهای مختلف فراگیر پیام نور

صفحه 2 از 5 اولیناولین 1234 ... آخرینآخرین
نمایش نتایج: از شماره 11 تا 20 از مجموع 45

موضوع: آموزش جامع تصویری و کاربردی سی شارپ (#c)

  1. #11
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    حالا كه در مورد Constrcutor ها و Method ها صحبت كرديم مي تونيم بگيم كه تا حدودي كلاس ها رو شناختيم و حالا مي تونيم ادامه مطالبمون در رابطه با Value Type ها رو پيش ببريم:


    Structures in CSharp
    Structure ها نوع هاي داده اي هستند شبيه به كلاس ها به اين معنا كه مي توانند Field و Method و Constructor داشته باشند و حتي در بعضي از موارد به خاطر نوع رفتاري كه Value Type ها دارند به جاي كلاس ها استفاده شوند. براي تعريف يك Structure كافيست در جايي از namespace با استفاده از keyword ي كه به همين منظور ايجاد شده است يعني struct شروع به ايجادش نمائيم:

    کد:
      public struct Teacher
    {
    public int Age;
    public string Name;
    public void Print()
    {
    Console.WriteLine("Name: {0}, Age: {1}",Name, Age);
    }
    }
    همانطور كه مي بينيم ساختار ظاهري Struct ها كاملا شبيه به كلاس است اما تفاوت اصلي آن ها در رفتارهايشان مي باشد.

    در تعريف رفتار هاي كلاس گفتيم وقتي شما يك شيء از نوع يك كلاس مثل Person ايجاد مي كنين و بعد از آن شيء كپي تهيه مي كنين فقط آدرس حافظه شيء قبلي به شيء جديد اختصاص يافته و در حقيقت شما فقط يك شيء داريد.
    اما در مورد Struct ها جريان كاملا شبيه به كپي گرفتن از تايپ هاي بدوي (Primitive Types) ها مي باشد. به چند خط كد زير دقت كنين:
    کد:
    Teacher t = new Teacher();
    t.Name = "Ali";
    t.Age = 44;
    
    Teacher t2 = t;
    t2.Name = "Reza";
    
    t.Print();
    t2.Print();
    به نظر شما خروجي اين چند خط كد چيست؟
    به اشكال زير دقت كنين:





    نكته بسيار مهم در شكل اول اينست كه اصولا به خاطر Value Type بودن Struct ها هيچ شيء اي در حافظه Heap ايجاد نشده است و فقط دو متغيير در حافظه Stack ايجاد شده است. نكته مهم دوم اينه كه وقتي شما از يك متغيير از نوع Struct كپي مي گيرين تمامي مقادير موجود در آن Struct كپي شده و در متغيير جديد يك كپي از آن مقادير قرار خواهد گرفت. پس در نتيجه تغييراتي كه ما در متغيير دوم يعني t2 داديم برروي متغيير اول يا همان t تاثيري نخواهد داشت.


    Constructors in Structures - سازنده ها در ساختار ها

    نكته مهم ديگري كه مي توان در مورد Struct ها بيان كرد در مورد سازنده ها در اين جنس است. در پست قبلي در مورد ايجاد سازنده ها در كلاس ها صحبت كرديم و گفتم كه شما مي توانين ورژن هاي مختلفي از سازنده ها را در يك كلاس داشته باشين. اما بايد بگويم كه در مورد Struct ها جريان كمي متفاوت خواهد بود.
    نكته اول: شما سازنده پيشفرض را در Struct ها دارين اما امكان تايپ كردن آن را به صورت دستي ندارين. به اين معني كه اگر شما يك Constructor بدون پارامتر در يك Struct تعريف كنين به Compile Time Error بر خورد خواهيد كرد و در حقيقت شما نمي تونين هيچ تغييري در رفتار سازنده پيشفرض Struct ها ايجاد كنين. بايد بدونين كه سازنده پيش فرض در Structureها در حقيقت يك object ايجاد نمي كند بلكه به تمامي متغييرهايي كه داخل Struct شما وجود دارند مقدار پيش فرض را Set مي كند.
    Teacher t = new Teacher();
    در نتيجه كد بالا فيلد Age مقدار 0 و فيلد Name مقدار "" را كه مقادير پيشفرض int و String هستند را خواهند گرفت.
    نكته دوم: در تمامي ورژن هاي سازنده ها بايد تمامي متغيير هاي Struct شما مقدار دهي شوند. در غير اينصورت بازهم Compile Time Error خواهين داشت.
    در نتيجه Struct شما مي تواند به اين شكل باشد:
    کد:
     public struct Teacher
    {
    public int Age;
    public string Name;
    
    public void Print()
    {
    Console.WriteLine("Name: {0},Age: {1}",Name,Age);
    }
    
    public Teacher(int age, string Name)
    {
    Name = name;
    Age = age;
    }
    public Teacher(int age)
    {
    Age = age;
    Name = "";
    }
    }





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  2. #12
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    خوب البته صحبت ما در مورد Structure ها هنوز تمام نشده اما اجازه بدين ادامه مطلب رو بعد از اينكه كلاس ها رو بيشتر بررسي كرديم داشته باشيم.

    نوع هاي در سي شارپ - Reference Type in CSharp
    مهم ترين نوع داده اي Reference Type در سي شارپ همان Class يا كلاس ها مي باشند كه تا حدودي در موردشان صحبت كرديم. اما يك نوع داده اي ديگر به نام object وجود دارد كه بايد در موردش صحبت كنيم.

    اصولا object خود نيز يك كلاس است اما به جهت اهميتي كه دارد من آن را به صورت جدا از بقيه كلاس ها بررسي مي نمايم. همانطور كه قبلا هم گفتم سي شارپ يك زبان Object Oreinted يا همان شيء گراست و تمامي مفاهيم شيء گرايي در اين زبان رعايت مي شود. يكي از مهمترين مفاهيم شيء گرايي مفهوم Inheritance يا همان توارث مي باشد. توارث در حقيقت به معني به ارث رفتن خصوصيات يك موجود از موجود ديگر مي باشد. و نكته اي كه Inheritance رو به object ربط مي دهد اين است كه object به عنوان base class تمامي كلاس هاي موجود در دات نت فريم ورك مي باشد. به اين معني كه تمامي كلاس هايي كه در دات نت فريم ورك و كلاس هايي كه شما مي نويسيد, همه و همه از كلاس object به ارث رفته اند.

    وقتي يك كلاس از يك كلاس ديگر به ارث مي رود تمامي خصوصيات عمومي آن نيز به آن كلاس به ارث مي رود. مثلا اگر من كلاسي به نام Person داشته باشم كه داراي اطلاعات Name و Age و متد Print باشد وقتي كه كلاس Student را از كلاس Person به ارث مي برم خصوصيات عمومي كلاس Person در كلاس Student نيز قابل استفاده مي باشد.

    به مثال زير دقت كنيد:
    کد:
    public class Test
    {
    }
    با توجه به كدي كه بالا نوشته شده است در اين كلاس هيج موجودي (اعم از Field يا Method و يا ...) وجود ندارد اما اگر از اين كلاس يك شيء بسازيم متوجه مي شويم كه در اين كلاس يك سري متد وجود دارد:



    نكته قابل تامل اينجاست كه اين چهار متد (ToString(), GetHashCode(), GetType(),Equal) همگي در تمام كلاس هايي كه در دات نت يافت مي شود وجود دارد. پس مي توان نتيجه گرفت كه اين متد ها از كلاس object به همه كلاس ها به ارث مي رسند.

    اين كه هر كدام از اين متد ها چه كاري انجام مي دهند را بعد ها بيشتر توضيح خواهم داد.





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  3. #13
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    رشته ها در سي شارپ - String in CSharp
    نوع داده اي رشته اي نيز يكي از مهم ترين نوع هاي داده ايست كه در اين گروه قرار مي گيرد(Reference Types). براي ايجاد يك متغيير از نوع داده اي رشته اي مي توانيم از نمونه كد زير استفاده كنيم:
    کد:
     string myName = "ali";
    همانطور كه در كد بالا مشاهده مي كنيد براي مقدار دهي يك متغيير از نوع داده اي رشته اي كافيست مقدار مورد نظرمان را داخل دو علامت "" قرار داده و با استفاده از = مقدار دهي را انجام دهيم.
    کد:
     myName += "reza";

    با توجه به كد بالا مقدار myName با استفاده از operation += كه در حقيقت مقدار قبلي را + مقدار جديد كرده و مقدار دهي مي نمايد از Ali به alireza تغيير يافت. البته شما مي توانستيد اين كد را به صورت زير نيست بنويسيد:
    کد:
     myName = myName + "Reza";

    البته دليل ذكر مثال با روش استفاده از =+ نيست بلكه مي خواهم در مورد رفتار كلاس string كمي توضيح دهم.

    در حقيقت كلاس string يك كلاس از نوع Reference Type هاست اما به دليل استفاده بسيار زيادش در زبان هاي برنامه نويسي مايكروسافت روش استفاده از آن را با استفاده keyword ي با همان نام و با حروف كوچك يعني string آسانتر و به روش value type ها نموده است. به عبارت ديگر وقتي شما مي نويسيد:

    کد:
    string myName = "ali";
    در واقع كامپايلر يك شيء از نوع string در حافظه Heap براي شما ايجاد مي كند:



    و وقتي مقدار قبلي را با مقدار جديد "Reza" جمع مي كنين يك شيء كاملا جديد در حافظه ايجاد مي شود. و شيء قبلي توسط Garbage Colletion از حافظه پاك خواهد شد.




    با توجه به نكته بالا اگر در شرايطي نياز داشتيد تا يك متن را مرتبا تغيير دهيد بهترين روش استفاده از string ها نخواهد بود. چرا كه هر چه تعداد دفعات تغيير متن شما بيشتر باشد به همان ميزان تعداد object هاي ساخته شده در حافظه Heap نيز زياد خواهد شد (البته كه Garbage Collection آن ها را حذف خواهد كرد) اما بهتر از كلاس ديگري به نام StringBuilder براي اين موضوع استفاده شود. تا به بهترين نحو از حافظه سيستم استفاده كنيم. كلاس StringBuilder در namespace System.Text قرار گرفته است و براي استفاده از آن بايد يك شيء از آن بسازيم:

    کد:
     StringBuilder st = new StringBuilder();
    و بعد مي توانيم با استفاده از متد Append متن مورد نظرمان را به آن اضافه كنيم:
    کد:
      st.Append("Ali");
    st.Append("Reza");
    و در نهايت با استفاده از متد ()ToString نتيجه را در غالب يك String در اختيار بگيريم:
    کد:
    string Name = st.ToString();
    رفتار StringBuilder برخلاف رفتار String مي باشد و به اين ترتيب خواهد بود كه در ابتدا مثلا 16 بايت حافظه براي خودش در نظر خواهد گرفت. وقتي نصف اين 16 بايت پر شده (با استفاده از دستور Append - يعني 8 بايت) آنوقت خودش به صورت اتوماتيك يك شيء جديد خ با دو برابر اندازه فعلي در حافظه خواهد ساخت (يعني 32 بايت) سپس مقادير قبلي را داخل اين شيء جديد كپي مي گيرد. و باز وقتي نصف اين 32 بايت پر شد به همين ترتيب عمل خواهد كرد. نتيجتا به صورت تساعدي اين مقدار حافظه بيشتر مي شود و در نتيجه تعداد اشيايي كه در حافظه ساخته مي شوند كمتر و كمتر خواهد بود و در نتيجه سرعت عملكرد آن به مراتب سريعتر خواهد بود.

    متد ()ToString
    ! دقت داشته باشين كه متد ToString از كلاس object به تمامي كلاس هاي دات نت به ارث مي رسد. در نتيجه ميتوانيد از اين متد هر جا كه به شكل رشته اي يك شيء نياز داشتين استفاده كنين:
    کد:
     int i = 12;
    int j = 32;
    string myResult = (i * j).ToString();
    البته دقت كنين كه هميشه اون چيزي انتظار دارين رو به شما بر نخواهد گرداند:به عنوان مثال وقتي از شيء اي از كلاس Person را ToString كنيم (يا هر كلاسي كه شما ايجاد كرده باشيد) به صورت پيشفرض خروجي ToString آن اسم كامل (Qualified Name) آن خواهد بود:
    کد:
     Person p = new Person();
    p.Name = "Ali";
    p.Age = 20;
    Console.WriteLine(p.ToString());
    يعني اگر كلاس Person من در اين مثال داخل namespaceي به نام ConsoleApplication12 باشد خروجي اين مثال ConsoleApplication12.Person خواهد بود.





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  4. #14
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    آرايه ها در سي شارپ - Arrays in CSharp
    مسلما به مانند بيشتر زبان هاي برنامه نويسي استفاده از آرايه ها در سي شارپ نيز مرسوم است. استفاده از آرايه ها براي نگهداري چندين مقدار از يك نوع داده اي استفاده مي شود.

    آرايه ها را مي توان از يك ديدگاه به سه دسته تقسيم كرد:
    1. آرايه هاي تك بعدي - Simple Arrays
    2. آرايه هاي مستطيلي - Rectangular Arrays
    3. آرايه هاي نامنتظم - Jagged Arrays

    براي تعريف يك آرايه تك بعدي در سي شارپ مي توانيد از Syntax زير استفاده كنين:

    [code]

    numbers = new int[3];
    numbers[0] = 100;
    numbers[1] =400;
    numbers[2] = 500;
    [code]

    همانطور كه مي بينين در كد بالا من يك آرايه از اعداد ايجاد كردم كه داراي سه خانه مي باشد. براي دسترسي به هر كدام از خانه هاي اين آرايه بعد از نام متغييرم از [] استفاده مي كنم و بين اين دو علامت از يك عدد (indexer) كه از صفر تا n مي باشد. دقت كنين كه هميشه n يكي كمتر از طول آرايه شماست.
    البته به غير از كدي كه بالا نوشته شده است من مي توانم از هر يك از روش هاي زير نيز براي ايجاد آرايه هاي استفاده كنم:

    کد:
    int[] numbers = new int[]{100,400,500};
    در روش بالا بدون ذكر طول آرايه با مقدار دهي مستقيم آن به وسيله مقاديري كه بين دو علامت {} قرار مي گيرند طول آن را مشخص مي نمائيم.
    اين هم يك نمونه ديگر از ايجاد آرايه ها:
    کد:
    int numbers = {100,400,500};
    نكته قابل تامل در مورد آرايه ها اين است كه اين نوع هاي داده اي در دسته Reference Type ها قرار مي گيرند و اصولا مقادير آن ها در حافظه Heap نگهداري مي شود:


    حالا اگر من يك آرايه از يك كلاس مثلا Person داشته باشم به نظر شما شكل حافظه اين آرايه من چگونه خواهد بود؟ به كد زير دقت كنين و سعي كنين كه شكل حافظه آن را رسم نمائيد:
    کد:
    Person[] personList = new Person[3];
    دقت كنين كه حتما تمامي خانه هاي اين آرايه من بايد قبل از اينكه مورد استفاده بگيرند مقدار دهي شوند:
    کد:
    personList[0]  = new Person("Ali",24);
    personList[1] = new Person("Reza",35);
    personList[2] = new Person("John",44);
    كه در نتيجه خطوط با شكل حافظه ما به اين ترتيب خواهد بود:


    نكته بسيار مهم ديگر اين است كه ساختار آرايه ها به نحوي است كه طول آن ها ثابت مي باشد و در صورتيكه شما بخواهيد طول آن را تغيير دهيد مثلا از 3 خانه به 5 خانه ارتقاء دهيد بايد يكبار ديگر آن را new كنيد و در نتيجه اين new كردن شما اطلاعات قبلي خود را از دست خواهيد داد.
    کد:
    personList = new Person[5];
    و نتيجه كد بالا اين شكل خواهد شد:


    پس دقت داشته باشيد كه در صورتيكه مي خواهيد طول يك آرايه را بيشتر كنين حتما ابتدا يك آرايه جديد ساخته و طول آن را بيشتر در نظر بگيريد و سپس مقادير آرايه قبلي را در آرايه جديد كپي كنين.

    ساختار foreach در سي شارپ
    شما مي توانيد با استفاده از ساختار foreach در سي شارپ اطلاعات موجود در آرايه هاي خود را خوانده و از آن ها استفاده كنين. در حقيقت foreach يك نوع حلقه است كه بر روي آرايه ها شما انجام مي شود و تعداد دفعات انجام آن برابر است با طول حلقه شما و در هر با حركت يكي از خانه هاي آرايه شما را در اختيارتان قرار مي دهد. از Syntax زير براي ايجاد حلقه foreach استفاده مي نمائيم:
    کد:
    int[] myNums = new int[4];
    myNums[0] = 10;
    myNums[1] = 320;
    myNums[2] = 150;
    myNums[3] = 510;
    و براي نمايش اطلاعات داخل اين آرايه:

    کد:
    foreach(int num in myNums)
    Console.WriteLine(num);

    !
    دقت داشته باشين كه در ساختار foreach شما اجازه تغيير آرايه خود را به هر نحوي نداريد و اگر اين عمل را انجام دهيد به runtime error برخورد خواهيد كرد.

    آرايه هاي مستطيلي در سي شارپ - Rectangular Arrays in CSharp
    براي ايجاد يك آرايه مستطيلي از Syntax زير استفاده كنين:

    کد:
    int[,] myMatrix = new int[10,10];
    با توجه به كد بالا شما داراي يك ماتريكس 10 در 10 هستيد و براي استفاده از هر خانه از اين آرايه به index هاي x , y آن احتياج دارين:
    کد:
    myMatrix[0,0] = 0;
    myMatrix[0,1] = 100;
    و ....

    آرايه هاي نامنتظم - Jagged Arrays
    اين آرايه ها را مي توان با استفاده از كد زير توليد كرد:
    کد:
    int[][] jaggedArray = new int[3][];
    دقت داشته باشين كه در خط اول فقط طول يك بعد از آرايه را مشخص كرديم ==> 3
    کد:
    jaggedArray[0] = new int[3];
    jaggedArray[1] = new int[2];
    jaggedArray[2] = new int[4];
    و در نتيجه اين خطوط شما يك آرايه به مانند تصوير زير خواهيد داشت:


    استفاده از ArrayList در سي شارپ - ArrayList in Csharp
    به خاطر ساختار آرايه ها در سي شارپ وقتي شما نياز به آرايه اي دارين كه طول آن نا مشخص است مي توانين از يك كلاس به نام ArrayList كه در namespaceي به نام System.Collection قرار دارد استفاده كنين.

    کد:
    ArrayList arList = new ArrayList();
    arList.Add(10);
    arList.Add(20);
    arList.Add(40);
    
    foreach(int i in arList)
    Console.WriteLine(i);
    ساختار ArrayList به نحوي است كه با شروع استفاده از آن يك طول مشخصي (مثلا 4) را براي خود اختصاص مي دهد. سپس وقتي شما 2 تا از اين خانه ها را با استفاده از متد Add پر كنين , طول آرايه داخلي خود را به دو برابر افزايش مي دهد و مقادير قبلي را داخل آرايه جديدش كپي ميكند و اين عمل را به صورت تصاعدي ادامه مي دهد كه در نتيجه اين عمل هم سرعت و كارايي خوبي دارد و هم طولش قابل تغيير است.





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  5. #15
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    در سي شارپ
    از يك ديدگاه مي توان متغيير ها را در سي شارپ به دو دسته تقسيم كرد:


    1. Class Variable
    2. Instance Variable

    تا اينجا ما چند تا مثال از نوع دوم داشتين. متغيير هايي كه بايد از طريق اشياءشان دسترسي داشت:
    کد:
    Person p = new Person();
    p.Name = "Ali";
    p.Age = 20;
    همانطور كه مي بينين براي دسترسي به Name و Age بايد حتما از كلاس Person يك شيء بسازيم و از طريق شيء به متغيير ها دسترسي داشته باشيم.


    اما فرض بفرمائيد كه روي مفهومي مثل انسان (همان كلاس Person) مي خواهيم "جمعيت" رو پياده كنيم. به نظر شما من مي تونم رو اين فرد ("Ali") مفهوم جمعيت رو پياده كنم؟ آيا اصلا اين منطقي است؟ مثل بگويم علي چند نفر است؟

    به نظر مي رسد كه تعريف مفهوم (متغيير) جمعيت يا تعداد روي يك فرد غير منطقي باشد و اصولا جمعيت مربوط به كل انسان هاست نه فقط يك نفر!


    براي همين ما بايد از نوع اول متغيير ها استفاده كنيم كه به آنها Class Variable مي گوييم براي ايجاد يك Class Variable بايد از كلمه Static در تعريف متغييرمان استفاده كنيم:

    کد:
    public class Person
    {
    public static int Count;
    public string Name;
    public int Age;}
    حالا اگر بخواهم جمعيت رو مقدار دهي كنم يا اينكه مقدار جمعيت رو بخوانم بايد ابتدا نام كلاس و سپس نام متغييرم رو بنويسم:

    کد:
    Person.Count = 1000;
    حالا همين شرايط رو براي متد ها نيز در نظر داشته بگيريد. فرض كنين كه من مي خواهم متدي داشته باشم كه جمعيت را برايم چاپ كند. آيا در تعريف اين متد بايد كلمه static به كار گرفته شود؟ مسلما بله! چون من مي خواهم رفتاري را نشان دهم كه مربوط به كل Concept ما يا همان كلاس ماست نه مربوط به يك شيء خاص. براي همين متد PrintCount رو به صورت زير تعريف مي كنم:

    کد:
    public static void PrintCount()
    {
    Console.WriteLine("Count:{0}",Count);
    }
    ! فراموش نكنيد كه شما در متد هاي Static مجاز به استفاده از متغيير هاي غير static نمي باشيد.
    وقتي مي خواهيم از يك متد Static استفاده كنيم كافيست كه اسم متد رو بعد از اسم كلاس بياوريم:

    کد:
    Person.PrintCount();
    حالا با توجه به پست هايي كه تا امروز داشتيم, مي تونين 2 تا از متد هاي Staticي كه استفاده كرديم رو نام ببرين؟


    كلاس هاي Static

    مفهوم كلمه Static بر روي تعريف كلاس ها به اين معني است كه وقتي شما يك كلاس Static دارين تمامي Memberهاي اين كلاس بايد به صورت static تعريف شوند و اينكه شما نمي توانيد از اين كلاس objectبسازيد و البته اصولا احتياجي به اين كار هم ندارين.





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  6. #16
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    در پست دوازدهم در مورد اين موضوع صحبت كرديم كه در دات نت تمامي كلاس ها از يك كلاس به نام Object به ارث مي روند. در اين پست مي خواهيم كمي در مورد Inheritance بيشتر صحبت كنيم:


    توارث در سي شارپ - Inheritance in CSharp
    توارث يا به ارث بري همانطور كه از اسمش پيداست به اين معني است كه شما يه سري خواص و رفتار ها را از يك كلاس ديگر (كلاس پدر - Parent Class) به ارث ببرين و در نتيجه از همان امكانات و خصوصيات بدون نوشتن دوباره آن ها استفاده كنين. و در مواردي كه لازم مي دانين رفتار هاي آن ها را تغيير دهيد. اين اتفاقي است كه در دنياي واقعي نيز وجود دارد. به عنوان مثال شما احتمالا رنگ پوست , رنگ مو , رنگ چشم و شايد خصوصيات رفتاري و ... خود را از پدر و مادرتان به ارث ببرين. البته ممكن است كه شما رنگ مو خودتان را با استفاده از رنگ مو تغيير دهيد يا اينكه اخلاق و رفتارتان را با توجه به افكارتان به نسبت پدر يا مادرتان متفاوت باشد.


    همانطور كه در مثال بالا هم ديديم Inheritance نيز به مانند بسياري از اصولا Object Oriented از دنياي واقعي الگو برداري شده است و كاملا قابل درك مي باشد.


    فرض بفرمائيد كه من يك كلاس به نام Person يا همان انسان دارم. در اين كلاس خصوصيات "نام" و "سن" و همچنين يك متد به نام Print كه اطلاعات را براي من چاپ مي كند , تعريف شده اند. حالا يك كلاس به نام Emp يا كارمند ايجاد مي كنم. بعد از بررسي اين كلاس متوجه مي شوم كه كلاس Emp من داراي خصوصيات مشتركي با Person مي باشد و در نتيجه تصميم مي گيرم كه به جاي پياده سازي مجدد , از امكانات كلاس Person استفاده كنم.

    حالا اجازه بدين روش پياده سازي Inheritance رو در سي شارپ بررسي كنيم.
    کد:
    public class Person
    {
             public string Name;
             public int Age;
    
             public void Print()
            {
                Console.WriteLine("Name:{0},Age:{1}", Name, Age);
             }
    }
    حالا مي خواهم كلاس Emp رو از كلاس Person به ارث ببرم. براي اينكار كافيه كه بعد تايپ كردن نام كلاسم يك : قرار بدهم و بعد نام كلاسي كه مي خواهم از آن به ارث برم رو مشخص كنم:
    کد:
    public class Emp : Person
    {
    }
    حالا اگر كدتون رو كامپايل كنين (با استفاده از Shift + Ctrl + B) و از كلاس Emp يك شيء در متد Main كلاس Programm ايجاد كنين خواهيد ديد كه كلاس شما داراي خواص Name و Age و متد Print مي باشد.



    اگر بخواهيم Class Diagram مثال فوق را رسم كنيم شكل زير پديد خواهد آمد:



    حالا به جملاتي كه من مي پرسم با دقت پاسخ دهيد.

    1. به نظر شما يك كارمند الزما يك انسان است؟
    2. مي توان گفت كه هر انسان الزما يك كارمند است؟

    جواب سوال اول مسلما "بله" خواهد بود. چرا كه وقتي يك كلاس (كارمند) از كلاس ديگر (انسان) به ارث مي رود با اطمينان مي توان گفت كه اشياء اين كلاس از جنس پدر نيز هستند.
    جواب سوال دوم كاملا به شيء مورد نظر بستگي دارد و اصولا در سي شارپ اين كار به صورت عادي امكان پذير نيست.

    اجازه بدين سوالات بالا رو به صورت سي شارپي ببينيم؟
    کد:
    Emp e =  new Emp();
    e.Name = "Ali";
    e.Age = 22;
    
    Person p = e; // اين كاملا در سي شارپ امكان پذير است
    اما اگر شما اين كد را داشته باشيد , به Compile Time Error يا همان خطاهايي كه درزمان كامپايل ايجاد ميشوند بر خواهيد خورد:
    کد:
    Person p = new Person();
    p.Name = "Ali";
    p.Age = 44;
    
    Emp e = p; // اين خط از كد خطا توليد مي كند





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  7. #17
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    صحبت هامون به اونجا رسيد كه گفتم شما مي تونين يك شيء از نوع فرزند رو به چشم يك شيء از جنس پدر ببينيد كه به اين عمل اصطلاحا "Upcast" گفته مي شود. يك مثال ساده هم ازش زديم و گفتيم كه اگر شما يك كارمند داشته باشين مي تونين اونو به چشم يك انسان نگاه كنين و در نتيجه از اطلاعاتي كه همه انسان ها دارند روي آن فرد خاص هم استفاده كنيم.
    واقعيت اين است كه وقتي شما يك شيء از جنس فرزند دارين در حافظه Heap تمامي اطلاعات موجود به آن وجود دارند ولي وقتي شما به آن شيء با Reference پدر كار كنين فقط و فقط اطلاعاتي رو مي توانين استفاده كنين كه در پدر وجود دارند.

    به شكل زير نگاه كنين. كلاس Person داراي "Name"و "Age" و متد "Print" مي باشد. و كلاس Emp كه از كلاس Person به ارث رفته يك فيلد به نام "Salary" نيز دارد.



    حالا اگر من يك شيء از جنس Emp بسازم طبق اصولي كه گفتيم بايد تمامي متد ها و field هاي پدر + اطلاعات خودش را داشته باشد.
    کد:
    Emp e = new Emp();
    e.Name = "Ali";
    e.Age = 45;
    e.Salary = 120000;
    اما اگر من يك reference به شيء "e" از جنس Person ايجاد كنم فقط و فقط مي توانم اطلاعات مربوط به Person را استفاده كنم:



    در واقع رفتار Compiler سي شارپ به صورت شكل زير خواهد بود:



    البته شايد اين مثال كمي به نظرتون عجيب برسه! واقعيت اينه كه مثلا بالا شايد كمي غير واقعي باشه. اجازه بدين مثالمون رو اينجوري ادامه بديم.

    فرض كنين كه شما يك متد دارين كه ورودي آن يك آرايه از اشياء از جنس Person مي باشد و بعد داخل اين متد اطلاعات شيء ها را يكي يكي چاپ مي كنيم:

    کد:
    public void PrintList(Person[] list)
    {
          foreach(Person p in list)
            p.Print();
    }
    حالا شما مي خواهين اين متد را فراخواني كنين ولي شما 3 شيء از جنس كارمند دارين. آيا مي توانين يك آرايه از اشيايي با جنس كارمندان را به متد بالا پاس دهيد؟؟؟
    کد:
    Emp = e = new Emp("Ali",34,12000);
    Emp e2 = new Emp("Reza",33,10000);
    Emp e3 = "Saeid",28,20000);
    // ساختن يك آرايه از Person با استفاده از اشيايي از جنس Emp
    Person[] myList = new Person[]{e,e2,e3};
    PrintList(myList);

    پس همانطور كه مي بينيم عمل Upcast يكي از پر استفاده ترين اعمال در سي شارپ مي باشد.

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





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  8. #18
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    در مورد Upcast توي پست قبلي صحبت كرديم. اما حالا مي خواهيم در مورد DownCast صحبت كنيم.

    به كد زير دقت كنين:
    کد:
         Emp e = new Emp("Ali",24,120000);
    Person p = e;
    حالا فرض كنين كه من مجددا مي خواهم يك Reference از جنس Emp به شيء p داشته باشم. يعني اينكه مجددا "ديدم" رو از سطح بالا (Person) به سطح پائين تر (Emp) تغيير بدم. اينكار به صورت پيش فرض (implicit - غير صريح) امكان پذير نيست و در صورتيكه شما بخواهيد اين كار را انجام دهيد حتما بايد صراحتا (explicit) مسئوليت اين كار را به عهده بگيريد (casting).

    اجازه بدين اين موضوع رو با يك مثال ساده بيشتر توضيح بدم.

    يك نمايشگاه كه همه افراد اجازه بازديد دارند رو در نظر بگيرين. حالا داخل اين نمايشگاه شما به يكي از افراد اشاره مي كنين مي گين كه شما يك كارمند هستين!! آيا اين امكان پذير است؟ مسلما نه. مگر اينكه شما فرد مورد نظر رو بشناسين و بدانين كه ايشان يك كارمند هستند.


    حالا اگر اين داستان رو در دنياي برنامه نويسي هم دنبال كنيم وقتي شما يك متد دارين كه ورودي آن اشيايي از جنس Person هستند. حالا شما مي خواهين يك Reference از جنس Emp به يكي از اين اشياء داشته باشين. اين كار امكان پذير نيست مگر اينكه شما مطمئن باشيد كه اين فرد يك كارمند بوده و در هنگاه اجراي اين متد با استفاده از Upcast وارد اين متد شده است.

    Casting
    حالا اگر شما مطمئن بوديد كه يك فرد واقعا يك كارمند است و خواستين كه عمل Downcast را انجام دهيد بايد مسئوليت اينكار را بعهده بگيريد. براي اينكار كافيست به صورت زير عمل كنين:
    کد:
        Emp e2 = (Emp) p;
    همانطور كه مي بينين عمل Casting يا همان مسئوليت پذيري با استفاده از دو پرانتز و بعد جنس مورد نظر صراحتا اعلام شده است (explicit).

    شكل حافظه زير داستان را كاملا شفاف خواهد كرد:



    همانطور كه در تصوير مي بينين در DownCast در حقيقت شما "ديدتان را گسترش" مي دهيد و اين كار هيچ تغييري در ماهيت شيء شما ايجاد نمي كند. حالا اگر شما با استفاده از Casting مسئوليت يك DownCast غير متعبر را به عهده بگيرين با يك خطاي runtime برخورد خواهيد كرد:

    کد:
         Person p = new Person("Reza", 45);
    Emp e = (Emp) p;
    در شكل حافظه زير مشخص است كه عمل DownCast با شكست مواجه خواهد شد. زير اطلاعات مورد نياز در شيء p براي تبديل شدن به Emp وجود ندارد.







    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  9. #19
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    Access Modifiers in CSharp - كنترل سطوح دسترسي در سي شارپ*
    * خيلي ممنون مي شم اگر كسي بتونه توي تصحيح اين عبارت ها به فارسي روان تر كمكم كنه.


    همانطور كه تا اينجاي كار ديدين ما از دو عبارت public و private در كد هايي كه نوشتيم استفاده كرده بوديم. كه در حقيقت كنترل كننده سطح قابل دسترسي يك متغيير يا متد يا كلاس و يا ... مي باشد. اگر اشتباه نكنم قبلا هم گفتم وقتي متغييري public تعريف مي شود از هر جايي قابل دسترسي است. حالا اجازه بدين اين موضوع رو كمي بيشتر توضيح بدهيم.

    اصولا كاربرد Access Modifier ها بر روي دو حوزه (تا اينجايي كه ما اطلاعات داريم) مي باشد.

    1. در تعريف كلاس يا Enum يا Structure ها.
    2. در تعريف متغيير ها , Method ها , Constructor ها و ...

    كلا ما ۵ سطح دسترسي داريم:
    public
    protected
    internal
    protected internal يا internal protected
    private

    public access modifier: به اين معني كه هيچ گونه محدوديتي قائل نيستيم. امكان استفاده از آن براي كلاس ها (آيتم هاي اول) و متغيير ها و ... (آيتم هاي دوم) وجود دارد. وقتي من كلاس public تعريف مي كنم به اين معناست كه هر كسي (چه داخل پروژه من و چه خارج از پروژه من) امكان استفاده از كلاس من را دارد.
    وقتي متغيير يا متدي به صورت public تعريف مي شود هر كسي كه به كلاس دسترسي دارد مي تواند از متغيير يا متد شما استفاده كند.
    !! دقت داشته باشين كه شما اجازه ندارين به متغيير ها و ... درون كلاس دسترسي بالاتر از خود كلاس بدهيد.

    protected access modifier:
    وقتي يك متغيير يا متد يا ... به صورت protected تعريف مي شوند. داخل كلاس يا ... كه تعريف شده و كلاس هايي كه از آن كلاس به ارث رفته اند قابل دسترسي مي باشد.
    به عنوان مثال كلاس Person داراي يك متد به نام GetInfo() است كه به صورت زير تعريف شده است:
    کد:
    public class Person
    {
       public int Age;
       public string Name;
    
       protected void GetInfo()
       {
       Console.WriteLine("Name:");
       this.Name = Console.ReadLine();
       Console.WriteLine("Age:");
       this.Age = int.Parse(Console.ReadLine());
       }
    }
    حالا كلاس Emp كه از كلاس Person به ارث رفته است مي خواهد از متد GetInfo() استفاده كند و چون متد GetInfo() به صورت protected تعريف شده و در نتيجه تمامي كلاس هايي كه از Person به ارث بروند امكان استفاده از GetInfo() را دارند, قادر به انجام اين كار است.
    در صورتيكه از هيچ كجاي ديگر امكان استفاده از اين متد براي كلاس هاي ديگر مثل كلاس Programm وجود ندارد!!




    ! دقت داشته باشين كه protected براي گروه آيتم هاي اول (كلاس ها و...) قابل استفاده نيست.

    internal access modifier:خيلي از مواقع پيش مي آيد كه شما كلاسي را ايجاد مي كنين كه احتمال دارد در پروژه هاي ديگري بيرون از اين پروژه جاري استفاده شود. (مثلا در مورد برنامه نويسي چندلايه كه اميدوارم در آينده در موردش بيشتر توضيح بدهيم). حالا فرض فرمائين كه شما نمي خواهين يك كلاس يا متغيير يا ... آن كلاس در اختيار كساني قرار بگيرد كه بيرون از پروژه جاري شما از اين Assembly استفاده مي كنند. (مثلا شما يك Component رو در نظر بگيرين كه قرار است داخل n تا پروژه ديگر استفاده شود). براي همين مي توانيد با استفاده از internal فقط به كلاس هايي كه داخل اين پروژه شما هستند اجازه دهين كه از اين كلاس يا متغيير يا ... استفاده كنند.

    internal protected access modifier: دسترسي فوق تلفيقي است از internal و protected به اين معنا كه اگر متغييري به صورت internal protected تعريف شده باشد. كلاس هايي كه داخل اين پروژه هستند و يا از كلاسي كه اين متغيير داخلش قرار دارد به ارث رفته باشند , اجازه دارند كه از اين متغيير استفاده نمايند.

    ! دقت داشته باشين كه protected internal هم براي گروه آيتم هاي اول (كلاس ها و...) قابل استفاده نيست.

    private access modfier: متغيير و يا متد و ... كه به صورت private تعريف شود , فقط و فقط داخل همان كلاس قابل استفاده خواهد بود.

    ! دقت داشته باشين كه private براي گروه آيتم هاي اول (كلاس ها و...) قابل استفاده نيست.





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




  10. #20
    sunyboy آواتار ها
    • 33,773
    مدیـریت کــل باشگاه

    عنوان کاربری
    مدیــــریت کـــــل باشگاه
    تاریخ عضویت
    Sep 2008
    محل تحصیل
    علوم - فناوری
    شغل , تخصص
    وب مستر - طراح وب
    رشته تحصیلی
    مهندسی نرم افزار
    راه های ارتباطی

    پیش فرض

    خصوصيات در سي شارپ - Properties in CSharp

    يكي از مطالبي كه جا مونده بود بحث Properties ها در سي شارپ است. در تعريف Properties مي توان گفت كه Properties يك يا دو متد است كه با يك field private كار مي كند.


    براي تعريف Properties ها از Synatx زير استفاده مي كنيم:

    کد:
    public string Name
    {
           get{return _Name;}
           set{_Name = value;}
    }
    private string _Name;
    همانطور كه در مثال بالا مشاهده مي كنين. ما يك فيلد private به نام Name_ تعريف كرديم كه در Property اي به نام Name مورد استفاده قرار گرفته است. در حقيقت Property Name از Name_ براي ذخيره مقدار و بازيابي آن استفاده مي كنند.

    اما اگر Property ها از فيلد ها براي نگهداري و بازيابي اطلاعاتشان استفاده مي كنند چه دليلي دارد كه ما از property ها استفاده كنيم؟
    در پاسخ به اين سوال بايد گفت كه به دو دليل از Property ها استفاده مي شود:

    1. كنترل و مديريت اطلاعات در حين مقدار دهي و خواندن مقادير
    در توضيح اين مورد بايد بگم كه اگر شما يك فيلد براي سن در نظر بگيريد و به جنس آن را از نوع عددي مثلا intتعيين كنين برنامه نويساني كه از كلاس شما استفاده مي كنند (Class Programmer ها) مي توانند مقاديري بين دو عدد و براي سن مشخص كنند. اما در واقعيت اين اعداد براي سن كاملا غير معتبر مي باشد. پس با اعمال كنترل هاي لازم در قسمت set براي Property مي توان بازه اي كه براي اعداد مشخص شده است را تعيين كرد.

    کد:
    private int _Age;
    public int Age
    {
               get{return _Age;}
       set{ if(!(value >= 0 && value <= 100))
                   _age = 10;
               else
                  _age = value;
        }
    }

    در اين مثال در صورتيكه سن بين 0 تا 100 نباشد 10 در نظر گرفته مي شود.

    2. امكان تعيين سطح دسترسي براي فيلد ها
    نكته بعدي ايجاد Property هاي است كه فقط خواندني يا فقط نوشتني هستند. با استفاده از اين روش مي توانين اطلاعات را محدود به خواندن يا نوشتن نمائيد تا برنامه نويسان بر اساس نيازشان فقط اطلاعات را بخوانند يا بنويسند. البته شما مي توانين Property هايي كه هم خواندني و هم نوشتني هستند داشته باشين.

    کد:
    private int _Count;
    public int Count
    {
       get{return _Count;}
    }

    در اين مثال تعداد يك Property فقط خواندني مي باشد.
    ! نكته اي كه مي توان در سي شارپ 2.0 از آن استفاده كرد اينست كه شما مي توانين براي
    Property ها دو سطح دسترسي مختلف تعيين كنيد :

    کد:
    public string Name
    {
           get{return _Name;}
           protected set{_Name = value;}
    }
    مانطور كه مي بينين Property Name به صورت public تعريف شده و در نتيجه همه مي توانند از آن اطلاعات بخوانند ولي براي مقدار دهي آن با توجه به protected بودن آن فقط افرادي اين امكان را دارند كه از اين كلاس به ارث رفته باشند. دقت كنين كه شما اجازه دارين دسترسي ها بر روي متد هاي get و set كمتر نمائيد و حق بيشتر كردن دسترسي را نداريد.





    فروشگاه نمونه سوالات پیام نور با پاسخنامه تستی و تشریحی


    دانلود رایگان نمونه سوالات نیمسال اول 93-92 پیام نور

    دانلود رایگان نمونه سوالات نیمسال دوم 92-91 پیام نور مقطع کارشناسی

    دانلود رایگان مجموعه نمونه سوالات تمامی رشته های پیام نور نیمسال اول 90-91 دانشگاه پیام نور


    دانلود نمونه سوالات آزمون فراگیر کارشناسی ارشد تمامی دوره های دانشگــــاه پیــــام نور




    دانلود مجموعه نمونه سوالات ارشد فراگیر پیام نور




    برای دانلود رایگان نمونه سوالات پیام نور با جوابهای تستی و تشریحی در مقطع نمونه سوالات کارشناسی ارشد پیام نور - نمونه سوالات پیام نور کارشناسی - نمونه سوالات پیام نور دکترا- نمونه سوالات آزمونهای فراگیر پیام نور( دانشپذیری)

    به ادرس زیر مراجعه کنید

    نمونه سوالات رایگان پیام نور


    ********************************



    ********************************




صفحه 2 از 5 اولیناولین 1234 ... آخرینآخرین

برچسب برای این موضوع

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

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