تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 34 +

تعداد کل مطالب : 338 +

تعداد نظرات : 29 +

حضرت علی (ع) : دانش اندک همراه با عمل بهتر از علم بسیار بدون عمل است.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و بیست و دوم


به نام پروردگار جهان

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و بیست و دوم

سلام به همه کاربران وبسایت لندلرن

قسمت صد و بیست و دوم


كلاسهاي چارچوب NET. :

اگرچه چارچوب NET .را درقسمت های ابتدایی به طور كلي بررسي كرديم ، در اين قسمت سعي مي كنـيم بـه قـسمتهايي از سـاختار ايـن چارچوب كه مي تواند در طراحي كلاسها به شما كمك كند نگاهي بيندازيم .

همچنين در اين قسمت فـضاي نامهـا و نحـوه ايجـاد و استفاده از آنها در برنامه را مشاهده خواهيم كرد .

فضاي نام :

يكي از قسمتهاي مهم چارچوب NET ،.كلكسيون عظيم كلاسهاي آن است.

در چارچوب NET .حدود ۳۵۰۰ كلاس در رابطه با موارد مختلف وجود دارد، اما سوال اين است كه چگونه به عنوان يك برنامه نويس مي توانيد كـلاس مـورد نظرتـان را در بـين ايـن كلاسها پيدا كنيد؟

كلاسهاي موجود در چارچوب NET .به چندين گروه مختلف به نام فضاي نام تقسيم مي شود كه هر كدام از آنها حاوي چندين كلاس مرتبط به هم است .

به اين ترتيب اگر به دنبال كلاسي براي يك كار خاص باشيد مي توانيد فقط كلاسهاي داخل فضاي نـام مربوط به آن كار را جستجو كنيد .

خود اين فضاي نامها نيز به صورت سلسله مراتبي هستند، به اين معني كه يك فضاي نام خود نيز مي تواند شامل چندين فضاي نام ديگر باشد، كه آنها نيز به نوبه خود كلاسهاي داخل آن فضاي نام را دسته بندي مي كنند .

بيشتر كلاسهاي موجود در چارچوب NET .در فضاي نام System و يا فضاي نامهاي موجود در آن دسته بندي شده اند.

براي مثال:

  • System.a شامل كلاس هايي براي دسترسي به اطلاعات ذخيره شده در يك بانك اطلاعاتي است.
  • System.Xml شامل كلاس هايي براي خواندن و نوشتن سندهاي XML است.
  • System.Windows.Forms شامل كلاس هايي براي ترسيم يك فرم و كنترلهاي آن روي صفحه نمايش است.
  • System.Net شامل كلاس هايي براي ايجاد ارتباطات شبكه اي در برنامه است.

هنگامي كه يك كلاس در يك فضاي نام قرار مي گيرد، براي دسترسي به آن علاوه بر ذكر نام كلاس، بايـد فـضاي نـام آن را نيـز مشخص كنيم .

البته تاكنون در برنامه ها از نام كوتاه شده آنها، يعني فقط نام خود كلاس استفاده كرده و فضاي نـام آن را مـشخص نمي كرديد .

به عبارت ديگر در قسمت قبلي وقتي گفتيم كه تمام كلاسها از كلاس Object مشتق مـي شـوند، در حقيقـت نـام كلاس را خلاصـه كـرديم .

زيـرا كـلاس Object در فـضاي نـام System قـرار دارد و همـه كلاسـها در واقـع از كـلاس System.Object مــشتق مــي شــوند .

همچنــين كــلاس Console در واقــع نــام خلاصــه شــده كــلاس System.Console است و كد زير :

با كد زير معادل است :

هر كلاس فقط مي تواند به يك فضاي نام تعلق داشته باشد و همچنين نمي تواند عضو هيچ فضاي نامي نباشد .

به عبارت ديگر هـر كلاس بايد دقيقاً در يك فضاي نام قرار داشته باشد.

اما سوال اين است كه كلاس هايي كه تاكنون مي نوشتيم عضو چه فضاي نامي بودند؟

خوب، اگر به قسمت ويرايشگر كد نگاه دقيقتري بياندازيد، خواهيد ديد كه در بالاترين قسمت كد، بلاكي وجود دارد كه با كلمه كليدي namespace شروع مي شود و در مقابل آن نام پروژه وارد شده است .

براي مثال كلاس هـايي كـه در ايـن دوره در پروژه Objects ايجاد كرديم، همگي درون بلاكي به صورت زير قرار گرفته بودند :

بنـابراين نـام اصـلي كـلاس Car بـه صــورت Objects.car و نـام اصـلي كـلاس SportsCar بـه صـورت Objects.SportsCar بوده است .

هدف اصلي ايجاد فضاهاي نام در NET .ساده تر كردن استفاده از كلاسها براي كاربران آنها است .

فرض كنيد كلاسـهاي خـود را بعد از تكميل شدن در اختيار برنامه نويس ديگري قرار دهيد تا از آنها در برنامه خود استفاده كند .

اگر او نيز در برنامه ي خود كلاسـي به نام Car ايجاد كرده بود، چگونه مي تواند بين اين دو كلاس تفاوت قائل شود؟

خوب، نام واقعي كلاس شما در حقيقت برابر بـا Objects.car اسـت و نـام كـلاس او نيـز مـي توانـد هـر چيـزي ماننـد Car.MyOwnNameSpace باشد. به اين ترتيب احتمال اشتباه شدن اين دو كلاس با يكديگر از بين مي رود .

نكته: البته دقت كنيد كه نام Objects كه براي فضاي نام اين پروژه انتخاب كرديم، اصلاً نـام مناسـبي بـراي يـك دسـته از كلاسهاي مرتبط به هم نيست، زيرا به اين ترتيب نمي توان هيچ اطلاعاتي راجع به كلاسهاي داخل اين فضاي نـام بدسـت آورد .

در اين برنامه فقط اين نام را انتخاب كرديم كه مشخص كننده برنامه هاي اين بخش از دوره باشد.

مفهوم کلی USING در قسمت بعدی قرار دارد.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ