ورود کاربران VIP سرزمین دانلود، مرجع دانلود و آموزش رایگان نرم افزار

منوی سایت




مقدمه ای بر سی شارپ : قسمت یازدهم

Rating: 5 - 17 votes

مقدمه ای بر سی شارپ : قسمت یازدهم


از این قسمت به بعد می خواهیم نگاهی دقیق تر به بحث شیء گرایی در سی شارپ بیاندازیم؛ همانند فضاهای نام ، کلاس ها ، ارث بری ، پلی مرفیسم و غیره.

در قسمت های قبل آشنایی مختصری با فضاهای نام پیدا کردیم. در ادامه جزئیات بیشتری را در مورد آن بررسی خواهیم کرد.
فضاهای نام (namespaces) برای اداره کردن و نظم بخشیدن به کدها ارائه شده اند. همچنین از امکان تشابه اسمی در بین قسمت های مختلف برنامه نیز جلوگیری می کنند. استفاده از آنها عادت پسندیده ای است هنگامیکه قصد داریم از کد نوشته شده بارها و بارها استفاده کنیم.

مثال : یک برنامه ی سی شارپ جدید console را در VS.NET باز کنید و نام آنرا درابتدا ex24 انتخاب نمایید. سپس کد زیر را درون آن بنویسید :


// Namespace Declaration
using System;

namespace ex24
{
namespace tutorial
{
// Program start class
class NamespaceCSS
{
// Main begins program execution.
public static void Main()
{
// Write to console
Console.WriteLine("This is the new Namespace.");
}
}
}

 



توضیحاتی در مورد کد فوق :
یکی از روش های مناسب برای معرفی فضاهای نام ، ارائه ی آنها به صورت سلسله مراتبی می باشد. قسمت های عمومی تر در بالا و قسمت های اختصاصی تر در فصاهای نام داخلی تر قرار داده می شوند. این روش به معرفی فضاهای نام تو در تو منتهی می شود (nested namespaces) ، همانند مثال بالا.

کد فوق را به صورت زیر با استفاده از عملگر دات (.) می توان خلاصه نویسی کرد و نتیجه با قبل تفاوتی ندارد:


// Namespace Declaration
using System;

namespace ex24.tutorial
{
// Program start class
class NamespaceCSS
{
// Main begins program execution.
public static void Main()
{
// Write to console
Console.WriteLine("This is the new Namespace.");
}
}
}


طریقه ی فراخوانی اعضای فضاهای نام :

مثال : یک برنامه ی سی شارپ جدید console را در VS.NET باز کنید و نام آنرا درابتدا ex25 انتخاب نمایید. سپس کد زیر را درون آن بنویسید :


// Namespace Declaration
using System;

namespace ex25
{
// nested namespace
namespace tutorial
{
class myExample1
{
public static void myPrint1()
{
Console.WriteLine("calling another namespace member1.");
}
}
}

// Program start class
class NamespaceCalling
{
// Main begins program execution.
public static void Main()
{
// Write to console
tutorial.myExample1.myPrint1();
tutorial.myExample2.myPrint2();
}
}
}

// same namespace as nested namespace above
namespace ex25.tutorial
{
class myExample2
{
public static void myPrint2()
{
Console.WriteLine("calling another namespace member2.");
}
}
}


توضیحاتی در مورد کد فوق :
در کد فوق نحوه ی استفاده از اعضای تعریف شده در فضاهای نام را می توان مشاهده کرد. نحوه ی استفاده از آنها همانطور که در قسمت های قبل نیز گفته شد به صورت زیر است :


ProjectName.NameSpace.ClassName.MemberName


برای مثال در فصای نام tutorial کلاس myExample1 قرار دارد و داخل آن متد myPrint1 تعریف شده است. پس نحوه ی دسترسی به متد آن به صورت زیر است :


tutorial.myExample1.myPrint1();


کلاس های myExample1 و myExample2 هر دو به یک فضای نام (ex25.tutorial) تعلق دارند ، هر چند جدا از هم نوشته شده اند. حتی آنها را با حفظ سلسله مراتب خودشان می توان در فایلهای جداگانه ای نیز نوشت.

استفاده از using :

مثال : یک برنامه ی سی شارپ جدید console را در VS.NET باز کنید و نام آنرا درابتدا ex26 انتخاب نمایید. سپس کد زیر را درون آن بنویسید :


// Namespace Declaration
using System;
using ex26.tutorial;

// Program start class
class UsingDirective
{
// Main begins program execution.
public static void Main()
{
// Call namespace member
myExample.myPrint();
}
}

// C# Namespace
namespace ex26.tutorial
{
class myExample
{
public static void myPrint()
{
Console.WriteLine("Example of using a using directive.");
}
}
}


توضیحاتی در مورد کد فوق :

همانند مثال بالا ، برای خلاصه نویسی می توان از کلمه ی using به همراه نام namespace مورد نظر استفاده کرد. برای مثال اگر متد WriteLine را بخواهیم کامل بنویسیم به صورت زیر است :


System.Console.WriteLine(...);


اما با قید کردن و الحاق کردن فضای نام آن ، دیگر نیازی به ذکر System در ابتدای آن نیست.

نکته :

باز هم می توان خلاصه نویسی بیشتری را ارائه داد:


using csTut = ex26.tutorial.myExample; // alias


در این صورت تنها کافی است متد کلاس تعریف شده در آنرا به صورت زیر فراخوانی کنیم :


csTut.myPrint();

 

 

سایر مقالات مرتبط با این موضوع

 


( بدون کامنت - اولین کامنت را شما بنویسید )



 



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

هنوز نظری در مورد این مطلب ارسال نشده است. شما اولین نفر باشید!

نکات مهم :

- قبل از طرح سوال یا مشکل خود، کامنت سایر کاربران و پاسخ آنها را مطالعه کنید.
- لطفا فارسی تایپ کنید. امکان بررسی کامنت های پینگلیش وجود ندارد.
- پاسخ سوالات از طریق ایمیل و SMS نیز ارسال میشود. لطفا مشخصات خود را دقیق وارد کنید.

* نام 
آدرس ايميل (برای دریافت پاسخ از طریق ایمیل)
* شماره موبایل (برای دریافت پاسخ از طریق SMS)
توجه: ایمیل و موبایل شما فقط برای دریافت پاسخ سایت بوده و نمایش داده نمیشود.
* متن

* کد امنیتی
کد امنیتی


(اگر کد امنیتی واضح نیست، روی آن کلیک کنید تا عوض شود)
 


توجه : نظر شما بعد از تایید از طرف سایت، نمایش داده خواهد شد.
سرزمین دانلود، مرجع دانلود و آموزش نرم افزار

سرزمین دانلود را دنبال کنید !

عضویت در خبرنامه سرزمین دانلود

با وارد کردن ایمیل خود و سپس تایید آن، جدیدترین مطالب و نرم افزار ها برای شما ارسال می شود:



------------------------------------------