Namespaces ها در سی شارپ
چهارشنبه 29 خرداد 1392Namespaces ها در سی شارپ <br/> اهداف اين درس به شرح زير ميباشد : <br/> آشنايي با Namespaceü در زبان C# <br/> چگونگي استفاده از هدايتگر using (using directive)ü <br/> چگونگيü استفاده از هدايتگر alias (alias directive) <br/> اعضاي يك Namespace چه هستند؟ü
– Namespaces
اهداف اين درس به شرح زير ميباشد :
آشنايي با Namespaceü در زبان C#
چگونگي استفاده از هدايتگر using (using directive)ü
چگونگيü استفاده از هدايتگر alias (alias directive)
اعضاي يك Namespace چه هستند؟ü
اگر به خاطر داشته باشيد، در درس اول، در ابتداي برنامه از using System;
استفاده نموديم. با استفاده از اين كد، امكان دسترسي ما به اعضاي Namespace
مورد نظر، كه در اينجا System است، فراهم ميشد. پس از مطالعه اين درس،
مطالب بسياري درباره هدايتگر using فرا خواهيد گرفت.
Namespace ها، المانهاي زبان C# هستند كه شما را در سازماندهي كردن
برنامه، كمك ميكنند. پيادهسازي Namespace ها در كد برنامه بسيار مفيد است
چراكه از ايجاد مشكلات مربوط به استفاده مجدد كد، پيشگيري مينمايد.
چگونگي ايجاد Namespace
به مثال زير توجه نماييد.
مثال 1-6 چگونگي ايجاد يك Namespace را نشان ميدهد. در اين مثال ما با قرار دادن كلمه كليدي namespace در جلوي csharp-persian يك Namespace جديد ايجاد نموديم. مثال 2-6، Namespace هاي تودرتو را نشان ميدهد.
كد:
Namespace ها اين امكان را فراهم ميآورند تا سيستمي جهت سازماندهي كدهاي خود ايجاد نماييد. يك روش مناسب جهت سازماندهي Namespace هاي برنامه، استفاده از يك سيستم سلسله مراتبي است. بدين ترتيب كه Namespace هاي عمومي را در بالاي اين ساختار قرار داده و هر چه در اين ساختار پاينتر ميآييم، Namespace هاي تخصصيتر قرار ميگيرند. اين سيستم سلسله مراتبي بوسيله Namespace هاي تودرتو قابل پيادهسازي هستند. اين پيادهسازي در مثال 2-6 نشان داده شده است. با قرار دادند كدهاي خود در Namespace هاي فرعي ميتوانيد كدهاي خود را سازماندهي نماييد.
مثال 3-6 روش ديگر ايجاد Namespace هاي تودرتو را نشان ميدهد. همانطور كه در اين مثال مشاهده مينماييد، Namespace تودرتو با قرار دادن عملگر نقطه "." در بين csharp-persian و tutorial ايجاد شده است. اين مثال از نظر كارآيي دقيقاً همانند مثال 2-6 است و از نظر پيادهسازي آسانتر از آن ميباشد.
فراخواني اعضاي يكNamespace
مثال 4-6 چگونگي فراخواني اعضاي Namespace
نشان ميدهد. در ابتداي مثال 4-6، يك Namespace تودرتو اعلان شده است،
tutorial درون csharp-persian، كه داراي كلاس myExample1 و متد myPrint1
ميباشد. متد Main() اين متد را با نام tutorial.myExample1.myPrint1
فراخواني مينمايد. چون متد Main() و tutorial درون يك Namespace قرار
دارند، ديگر نيازي به استفاده از نام csharp-persian غير ضروري است.
در انتهاي مثال 4-6، يك Namespace ديگر بصورت csharp-persian.tutorial
آورده شده است. كلاسهاي myExamlpe1 و myExample2 هر دو متعلق به يك
Namespace ميباشند، هرچند ميتواند آنها را مجزا از يكديگر نوشت در حاليكه
متعلق به يك Namespace باشند. درون متد Main()، متد myPrint2 بصورت
tutorial.myExample2.myPrint2 فراخواني شده است. هرچند كلاس myExample2
خارج از محدودهايست كه متد myPrint2 فراخواني شده است، نيازي به آمردن نام
csharp-persian براي اين فراخواني وجود ندارد، زيرا هر دو كلاس متعلق به
يك Namespace، يعني csharp-persian هستند.
توجه نماييد كه براي هر يك از كلاسهاي myExample1 و myExample2 نامهاي
متفاوتي انتخاب شده است، زيرا هر عضو متعلق به يك Namespace بايد داراي نام
يكتايي باشد. براي متدهاي myPrint1 و myPrint2 ، بعلت سادگي در امر
يادگيري اين مطلب، نامهاي متفاوتي در نظر گرفته شده است. توجه نماييد كه
اين دو متد بعلت اينكه در كلاسهاي متفاوتي قرار دارند، ميتوان نامهاي
يكساني برايشان انتخاب نمود، و در اينصورت هيچگونه تداخلي بين ايندو ايجاد
نخواهد شد.
استفاده از هدايتگر using
در صورتيكه مي خواهيد متدهايي را بدون
استفاده از نام كامل آنها،به همراه نام Namespace، استفاده نماييد،
ميتوانيد از هدايتگر using استفاده نماييد. در مثال 5-6، دوبار از هدايتگر
using استفاده شده است. اولين استفاده از اين هدايتگر، using System،
دقيقاً مشابه به همان چيزي است كع تا كنون در اين درسها مشاهده نمودهايد.
با استفاده از اين هدايتگر ميتوانيد از اعضاي موجود در System، بدون اينكه
نياز به تايپ كلمه System در هربار داشته باشيد، استفاده نماييد. در
myPrint()، كلاس Console عضوي از System است كه داراي متد WriteLine()
ميباشد. اگر در ابتداي برنامه از هدايتگر using استفاده نكنيم، بايد براي
هر دفعه استفاده از متد WriteLine()، نام كامل آن يعني
System.Console.WriteLine() را تايپ نماييم.
به طور مشابه، استفاده از using csharp-persian.tutorial امكان استفاده از
اعضاي اين Namespace را، بدون نياز به تايپ نام كامل آنها فراهم مينمايد.
چون در ابتداي برنامه از هدايتگر using استفاده نمودهايم، در متن برنامه
متد myPrint() را بصورت myExample.myPrint() استفاده نمودهايم، درصورتيكه
از هدايتگر using استفاده نميگرديم براي استفاده از اين متد بايد آنرا
بصورت csharp-persian.tutorial.myExample.myPrint() ميآورديم.
استفاده از هدايتگر Alias
در برخي موارد ممكن است با
Namespace خاصي روبرو شويد كه داراي نامي طولاني است و تمايل داشته باشيد
تا نام آنرا كوتاهتر نماييد. اين كار با استفاده از ايجاد استعاره (Alias)
امكانپذير است. همانطور كه در مثال 6-6 ملاحظه مينماييد، با استفاده از
csTut = csharp-persian.tutorial.myExample يك استعاره توليد كردهايم و
در متن برنامه به جاي استفاده از نام طولاني
csharp-persian.tutorial.myExample از نام مستعار آن يعني csTut استفاده
نمودهايم. حال از اين نام مستعار در هر جاي برنامه ميتوان استفاده كرد.
ما در اين برنامه در متد Main() استفاده نمودهايم.
همچنين در متد Main()، فراخواني از متد myPrint() مربوط به كلاس
AliasDirective صورت گرفته است. نام اين متد همانند myPrint() موجود در
myExample است. علت اينكه ميتوان هر دو اين متدها را همزمان فراخواني كرد،
استفاده از هدايتگر alias براي متد myPrint() مربوط به كلاس myExample
است. (csTut.myPrint()) استفاده از اين روش باعث ميشود تا كامپايلر دريابد
كه كدام متد را بايد اجرا نمايد. در صورتيكه به اشتباه از هدايتگر alias
(csTut.myPrint()) استفاده نكنيم، كامپايلر به اشتباه متد myPrint() مربوط
به كلاس AliasDirective را دوبار اجرا خواهد كرد.
تا اينجا،ما تنها كلاسها را در Namespace ها نشان داديم. Namespace ها
انواع ديگري را نيز ميتوانند در خود داشته باشند كه در زير مشاهده
مينماييد :
Classes
Structures
Interfaces
Enumerations
Delegates
خلاصه
در اين درس با Namespace آشنا شديد و فراگرفتيد كه چگونه Namespace خود را
اعلان نماييد. اگر نخواهيد در هربار استفاده از متدها يا اعضاي يك
Namespace، نام كامل آنها را استفاده كنيد، بايد از هدايتگر using استفاده
نماييد. در صورتيكه بخواهيد بجاي استفاده از نام طولاني يك Namespace، از
نامي ك.وتاهتر استفاده كنيد، بايد از هدايتگر استعارهاي (Alias Directive)
استفاده نماييد.
- C#.net
- 2k بازدید
- 3 تشکر