محدوده های #C سی شارپ
هنگامي كه مفاهيم متدها را بيان مي كرديم، گفتيم كه متدها جامع هستند . اين مورد تاثير مهمي در نوع تعريف و اسـتفاده از متغييـرها در متد دارد. فرض كنيد كه دو متد به صورت زير داريد كه در هر كدام متغييري رشته اي به نام strName تعريف شده است :
private void DisplaySebastiansName()
{
// Declare variable and set value
string strName = “Sebastian Blackwood”;
// Display results
MessageBox.Show(strName, “Scope Demo”);
}
private void DisplayBalthazarsName()
{
// Declare variable and set value
string strName = “Balthazar Keech”;
//Display results
MessageBox.Show(strName, “Scope Demo”);
}
با وجود اينكه هر دوي اين متغييرها از متغييري با نام يكسان استفاده مي كنند، اما هر كدام از ايـن متغييرهـا در محـدوده متـد خـودتعريف شده اند. در امتحان كنيد بعدي اين مورد را مشاهده خواهيد كرد .
)1 يك پروژه ويندوزي جديد به نام Scope Demo در ويژوال استوديو ايجاد كنيد .
)2 يك كنترل Button جديد به فرم اضافه كنيد . خاصيت Name آن را برابـر btnScope و خاصـيت Textآن را برابر Scope دهيد. روي آن دو بار كليك كنيد و در متد ايجاد شده، كد مشخص شده در زير را اضافه كنيد:
private void btnScope_Click(object sender, EventArgs e)
{
// Call a method
DisplayBalthazarsName();
}
private void DisplaySebastiansName()
{
// Declare variable and set value
string strName;
strName = “Sebastian Blackwood”;
// Display results
MessageBox.Show(strName, “Scope Demo”);
}
private void DisplayBalthazarsName()
{
// Declare variable and set value
string strName;
strName = “Balthazar Keech”;
// Display results
MessageBox.Show(strName, “Scope Demo”);
}
)3 برنامــه را اجــرا كنيــد و بــر روي دكمــه Scope كليــك كنيــد. كــادر پيغــامي را مــشاهده خواهيــد كــرد كــه نــامBalthazar Keech را نمايش مي دهد .
همانطور كه مشاهده كرديد، در اين تمرين با وجود اينكه دو متغيير با نام يكسان ولي در مكانهاي متفاوت داريم، برنامه ب ه درستي كارمي كند .
private void DisplaySebastiansName()
{
// Declare variable and set value
string strName;
strName = “Sebastian Blackwood”;
// Display results
MessageBox.Show(strName, “Scope Demo”);
}
private void DisplayBalthazarsName()
{
// Declare variable and set value
string strName;
strName = “Balthazar Keech”;
١٠٦
// Display results
MessageBox.Show(strName, “Scope Demo”);
}
هنگامي كه يك متد شروع به كار مي كند، متغيير هايي كه در آن تعريف شده اند (در محدوده باز شـدن آكـولاد و بـسته شـدن آن )محدوده فعاليت محليمي گيرند . محدوده يك متغيير به اين معني است كه كدام قسمت از برنامه ميتواند به آن دسترسي پيـدا كنـد .محدوده فعاليت محلي يعني متغيير فقط در محدوده ي متد جاري قابل دسترسي است .در برنامه قبلي، متغيير strName تا هنگام فراخواني متد وجود ندارد . هنگامي كه متد شـروع بـه كـار كـرد، NET. و وينـدوزحافظه مورد نياز را در اختيار اين متغيير قرار مي دهد، بنابراين متغيير مي تواند در كد مورد استفاده قرار گيرد . در اين توابع ابتدا مقـدارمتغييـر را برابـر يـك نـام خـاص قـرار داده و سـپس كـادر پيغـام را نمـايش ميدهيـد. بنـابراين در ايـن مثـال هنگـامي شـما متـدDisplayBathazarName را فراخواني مي كنيد، متغيير هاي تعريف شده در آن متد بلافاصله ايجاد مـي شـوند، متـدوظايف خود را انجام مي دهد و با پايان يافتن متد، متغيير ها نيز از حافظه حذف مي شوند .
نكته: در بخش بعد مشاهده خواهيد كرد كه محدوده فعاليت يك متغيير حتي مي تواند به داخل يك حلقه در داخل متد محدود شود .
نتيجه :
مباحث و اصول مورد نياز براي نوشتن نرم افزار را بيان كرديم . بيشتر اين اصـول فقـط محـدود بـه زبـان ويـژوال #Cنيستند، بلكه در هر زباني صدق ميكنند . فصل را با معرفي الگوريتم ها آ غاز كرديم كه پايه و اساس تمام نرم افزارهـا هـستند . سـپسمفاهيم اوليه متغيير ها را معرفي كرديم و از نزديك پركاربرد ترين نوع هاي داده اي را از قبيـل string ،double ،int،DateTime و Boolean بررسي كرديم . مشاهده كرديد كه چگونه مي توان كارهاي گوناگوني روي اين متغيير هـا انجـام. داد مثلا انجام عمليات رياضي روي متغيير هاي عددي، اتصال رشته هاي مختلف به هم و ايجاد رشته جديـد، بدسـت آوردن طـوليك رشته، تقسيم يك متن به چند زيررشته، بدست آوردن تاريخ جاري سيستم و يا دسترسي به قسمتهاي مختلف تاريخ از قبيل ماه،سال و … با استفاده از خاصيتهاي آن. سپس نحوه ذخيره شدن متغيير ها در حافظه يك سيستم را مشاهده كرديد .بعد از اين موارد نگاهي به متدها انداختيم . اين كه متدها چيستند، چرا به آنها نياز پيدا ميكنيم، چگونه آنهـا را ايجـاد كنـيم و بـه آنهـاپارامتر بفرستيم. همچنين محدوده فعاليت متغيير ها را در يك متد را نيز بررسي كرديم .
در پايان بايد بدانيد :
- الگوريتم ها چيستند و چگونه در توسعه نرم افزار مورد استفاده قرار مي گيرند.
- چگونه متغيير هايي از نوع هاي داده اي مختلف را ايجاد و استفاده كنيد.
- چگونه از پركاربرد ترين توابع كار با رشته هنگامي كه متغييري از نوع string داريد استفاده كنيد.
- چگونه از نوع داده اي DateTime براي نگهداري زمان و تاريخ استفاده كنيد و آنها را بـر اسـاس تنظيمـات محلـي
- كامپيوتر كاربر در صفحه نمايش دهيد.
- چگونه متدهاي ساده را تعريف و استفاده كنيد.
تمرين :
يك برنامه تحت ويندوز با دو كنترل Button ايجاد كنيد . در رويداد Click دكمه اول دو متغيير از نوع عـدد صـحيح ايجـادكنيد و مقدار اوليه آنها را برابر عددي دلخواه قرار دهيد . سپس تعدادي از عمليات رياضي مختلف را روي اين اعداد انجام داده و نتيجهرا در خروجي نمايش دهيد .در رويداد Click دكمه ف رمان دوم دو متغيير از نوع رشته تعريف كنيد و مقدار آنها را برابر رشته دلخواه قرار دهيد . سپس دو رشتهرا به هم متصل كرده و نتيجه را نمايش دهيد .
2-
يك برنامه تحت ويندوز با يك كنترل TextBox و يك كنترل Button ايجاد كنيد. در رويداد Click دكمه فرمان، سهكادر پيغام را نمايش دهيد . كادر پيغام اول بايد طول رشته ي درون TextBox را نمايش دهـد . كـادر پيغـام دوم بايـد نيمـه اولرشته و كادر پيغام سوم نيمه دوم رشته را نمايش دهد