ویرایشگر كد #C سی شارپ
حالا كه فرم HelloUser را ايجاد كرده ايد، بايد مقداري كد به آن اضافه كنيد تا كارهاي مورد نظر را برايتا ن انجام دهـد . تـاكنون ديده ايد كه اضافه ك ردن يك كنترل به فرم تا چه حد ساده است . فراهم كردن يك كارايي خاص براي اين كنترل ها به وسيله كد نيز، زياد سخت تر از اضافه كردن كنترل به فرم نيست . براي اضافه كردن كد به كنترل مورد بحث، فقط كافي است كـه روي آندوبار كليك كنيد. با اين كار، صفحه ويرايشگر كد همانطور كه در شكل -16 نشان داده شده است باز مي شود .
شکل 16
دقت كنيد كه يك لبه ديگر به لبه هاي بالاي صفحه اصلي در ويژوال استوديو اضافه شد. حالا در محيط ويژوال استوديو به دو پنجرهDesign و Code دسترسي داريد . براي طراحي ظاهر و رابط كاربري برنامه بايد از قسمت Design، و بـراي نوشـتن كـدبرنامه بايد از قسمت Code استفاده كنيد . توجه كنيد كه ويژوال استوديو 2005 براي كد مربوط به يك فرم، يك فايل مجزا ايجـادمي كند. قسمتهاي بصري و قسمتهايي كه به ظاهر فرم مربوط هستند در فايلي به نام HelloUser.Designer.csو كدهاي مربوط به چگونگي عملكرد فرم در HelloUser.cs قرار مي گيرند . اين مـورد خـود يكـي از دلايلـي اسـت كـهموجب راحتي برنامه نويسي با ويژوال #2005 C مي شود. با استفاده از قسمت Design مي توانيد ظاهر برنامه خـود را طراحـيكنيد، سپس با استفاده از قسمت Code كد مربوط به فرم را بنويسيد .
قسمت مهم ديگر در پنجره مربوط به كد، دو جعبه تركيبي موجود در بالاي صفحه است . به وسيله اين دو مي توانيد بـه سـرعت بـه قسمتهاي مختلف فرم خود دسترسي داشته باشيد . اشاره گر ماوس خود را بر روي جعبه تركيبي سمت چپ ببريد و مقـداري بـر روي آن نگه داريد . راهنمايي ظاهر شده و ميگويد كه اين كادر، مربوط به Types است . اگر اين ليست را بـاز كنيـد، ليـستي از تمـامي كلاسهاي موجود در فرم خود مشاهده خواهيد كرد . اگر اشاره گر ماوس خود را بر روي جعبه تركيبي سـمت راسـت ببريـد، راهنمـاي ظاهر شده به شما مي گويد كه اين قسمت مربوط به Members است . اگر اين ليست را باز كنيـد، نـام تمـام توابـع و زيربرنامـه هايي كه در كلاس انتخاب شده در سمت چپ قرار دارند را خواهيد ديد . اگر فرم جاري محتوي مقدار زيادي كد است، به وسيله ايـن قسمت ميتوانيد به راحتي بين توابع آن جا به جا شويد .
اضافه كردن كد به برنامه HelloUser
براي شروع اضافه كردن كد به برنامه، بر روي قسمت Design در پنجره اصلي كليـك كنيـد تـا بـار ديگـر قـسمت طراحي را ببينيد . سپس روي دكمه ي OK دو بار كليك كنيد . پنجره ي كد با كدي كه در زير نوشته شده اسـت بـاز مـي شود. اين كد كه به صورت اتوماتيك نوشته شده است، پو سته يا قالب رويداد Click براي كنترل Button اسـت .
private void btnOK_Click(object sender, EventArgs e)
{
}
در كد بالا كلمات void و يا private نمونه اي از كلمات كليدي در #C هستند . در اين جا، كلمه voidبه ويژوال #C مي گويد كه تابع تعريف شده هيچ مقداري را برنمي گرداند . همـه ي كـدهايي كـه شـما در بـين خطـوطمربوط به باز شدن آكولاد ) }( و بسته شدن آن ) {( بنويسيد، تابع رويداد مربوط به دكمـه OK را تـشكيل مـي دهنـد . درفصل سوم بيشتر در مورد اين مباحث گفتگو خواهيم كرد .
2 حالا كدهاي مشخص شده در اين قسمت را در تابع وارد كنيد در بين آكولادها بنويسيد:
private void btnOK_Click(object sender, EventArgs e)
{
//Display a message box greeting the user
MessageBox.Show(“Hello ” + txtName.Text +
“! Welcome to Visual C# 2005.”,
“Hello User Message”);
}
نكته: به علت كمبود جا در اين صفحه نمي توانيم تمام يك دستور را پشت سر هم بنويسيم، اما در محيط ويژوال استوديو، شما مـيتوانيد اين كدها را پشت سر هم بنويسيد . در و يژوال #C ي ك خط كد ، زمان ي تمام م يشود كه علامت نقطه و يرگول (;)بنابراين ميتوانيد يك دستور را در چند خط بنويسيد و تا زماني كه كاراكتر ; را وارد نكرده ايد نيز دسـتور را ادامـه دهيد .
نكته: در طول كتاب، با قسمتهايي روبرو مي شويد كه بايد كدهايي را در برنامه خود وارد كنيد . معمولا هر جا كه چن ين موردي پيشبيايد، مكان دقيق وارد كردن كد را براي شما مشخص مي كنم . كدهايي كه با رنگ پـيش زمينـه خاكـستري مـشخص مـي شـوند،كدهايي هستند كه بايد در برنامه وارد كنيد .
3- بعد از اينكه كد قسمت قبلي را وارد كرديد، مجددا به قسمت Design برگرديد و روي دكمـه Exit دوبـار كليـ ككنيد. كد مشخص شده در زير را در تابع btnExit_Click وارد كنيد .
private void btnExit_Click(object sender, EventArgs e)
{
//End the program and close the form
this.Close();
}
احتمالا كلمه this برايتان جديد است . this يك كلمه كليـدي در #C اسـت كـه بـه شـيئ كـه در آن، در حـالكدنويسي هستيم، اشاره مي كند . در اين جا چون كدهاي نوشته شـده مربـوط بـه فـرم HelloUser اسـت، كلمـهthis به فرم HelloUser اشاره مي كند .
4 -حالا كه كدنو یسي برنامه به پايان رسيد، زمان تست كردن آن شده است و مي يتوان د ساخته خودتان را مشاهده كن . دي ابتـد برنامه را از طريق منو ي File Save HelloUser.cs و يا با استفاده از كليد Save روي نـوارابزار، ذخيره كنيد .
5- روي دكمه Start بر روي نوار ابزار (مثلث سبز رنـگ ) كليـك كنيـد . پنجـره Output در پـايين صـفحه، انجـام فعاليتهاي زيادي را نمايش مي دهد. اگر در وارد كردن كدهاي برنامه هيچ خطايي به وجود نيايد، اطلاعات اين پنجره فقطشامل اسم فايلهايي هستند كه براي اجراي برنامه بارگذاري مي شوند.در اين مرحله، به اصطلاح، ويژوال استوديو در حال كامپا لي برنامه شما است. كامپايل كردن به مرحله اي گفته مي شـودكه در آن، از كد و يژوال #2005 C كه توسط شما نوشته شده است، كدي ساخته ميشود كه توسـط كـامپيوتر قابـل فهـم باشد
. بعد از اينكه كامپايل برنامه شما با موفقيت به پايان رسيد، ويژوال استوديو 2005 آن را اجرا مي كنـد و مـي توانيـد نتيجه كار خود را مشاهده كنيد .اگر در مرحله كامپايل كردن، ويژوال #2005 C با هر خطايي در كد مواجه شود، آن را به عنوان يك وظيفه در پنجـره ي Task List ينما ش مي دهد. با دوبار كليك كردن روي وظيفه مورد نظر در بخش Task List به قسمتي از كد كه به آن مرتبط است، منتقل مي شويد . در فصل 11 در مورد خطا يابي برنامه ها و اصلاح آنها بيـشتر يـاد خـوا هيم گرفت .
)6 بعد از اينكه برنامه اجرا شد، صفحه اصلي آن نمايش داده مي شود . يك نام را وارد كرده و روي كليد OK كليك كنيد (يـاكليدهاي Alt + O را فشار دهيد).
شكل17
7 پنجره اي كه به كادر پيغاممعروف است، نمايش داده خواهد شد و به شخصي كه نـام او در TextBox داخـل فـرمآمده است خوش آمد مي گويد. مانند شکل زیر
شكل18
)8 بعد از اينكه كادر پيغام را با كليك كردن روي دكمه OK بستيد، روي دكمه Exit بر روي فـرم كليـك كنيـد . برنامـه بسته خواهد شد و شما به محيط ويژوال #2005 C برخواهيد گشت .
چگونه كار مي كند؟
كدي كه در ر ويداد Click براي دكمه OK وارد كرده ايد نام كاربري را كه در TextBox فرم وارد شده است دريافت كـردهو آن را به عنوان بخشي از پيغام همانند شكل -18 1 نشان مي دهد .خط اولي كه در كد مربوط به اين رويداد نوشته شده است، فقط يك توضيح است . اين توضيح براي راهنمايي كردن برنامه نويسي كه روي پروژه كار مي كند و يا كسي كه بعدها مي خواهد كد برنامه را بخواند نوشته مـي شـود و توسـط كـامپيوتر خوانـده نمـي شـود .
توضيحات در ويژوال #C ( با //) مشخص مي شوند و هر متني كه بعد از اين دو كاراكتر وارد شود هنگام كامپايل ناديده گرفته مي شود. در رابطه با اضافه كردن توضيحات در فصل سوم بحث شده است .
تابع MessageBox.Show يك پيغام را در صفحه نمايش مي دهد . اين تابع پارامترهاي مختلفي را دريافت مي كند. مـثلا در برنامه قبلي، يك رشته متني را به اين تابع فرستاديد تا در صفحه نمايش دهد. رشته متني شما از اتصال دو مقدار ثابت متني كه در علامت نقل قول (“) قرار گرفته بود تشكيل مي شد . براي اتصال چند رشته متني به يكديگر و ايجاد يك رشته طولاني در #C مـيتوانيد همانند كاري كه براي جمع كردن اعداد انجام مي دهيد، از علامت + استفاده كنيد .
در حقيقت كدي كه بعد از خط توضيحات در برنامه قبلي آمده است، ثابت رشته اي ” Hello” را با مقـدار خاصـيت Textمربوط به كنترل txtName جمع كرده و عبـارت “Welcome to Visual C# 2005 !” را بـه رشـته حاصل اضافه مي كند . پارامتر دومي كه به متد MessageBox.Show فرستاده شده است، توسط تابع به عنوان متني كـه بايد در نوار عنوان پنجره نمايش داده شود استفاده مي شود .
نكته ديگري كه در اين كد مهم است اين است كه يك دستور را در چند خط نوشته ايم . اين كار هنگامي كه مي خواهيم يك دستور طولاني را وارد كنيم بسيار مفيد است . همانطور كه ذكر شد، در #C يك دستور زماني تمام ميشود كه كاراكت ر ; بعد از آن قرار گيرد.تا زماني كه كامپايلر به اين كاراكتر برخورد نكرده باشد، تمام متن را به عنوان يك دستور در نظر مي گيرد
private void btnOK_Click(object sender, EventArgs e)
{
//Display a message box greeting the user
MessageBox.Show(“Hello ” + txtName.Text +
“! Welcome to Visual C# 2005.”,
“Hello User Message”);
}
كد بعدي كه وارد كرديد، مربوط به رويداد Click بـراي دكمـه Exit بـود . در آنجـا بـراي خـروج از برنامـه، بـه راحتـي كـد ()this.Close را نوشتيد . همانطور كه قبلا هم توضيح داده شد، كلمه كليدي this، به فرمي كـه هـم اكنـون در آن هستيم اشاره مي كند . متد Close از فرم جاري، باعث مي شود كه فرم بسته شده و تمام منابعي كـه سيـستم در اختيـار آن قـرار داده است آزاد شوند، بنابراين فرم (و در نتيجه برنامه) بسته مي شود .
private void btnExit_Click(object sender, EventArgs e)
{
//End the program and close the form
this.Close();
}
احتمالاً قسمتهاي زيادي از نوشته هاي بالا را متوجه نشده ايد و يا برايتان نامفهوم است . اما اصلاً جاي نگرانـي نيـست، در فـصلهاي
بعدي تمام اين موارد به تفصيل توضيح داده خواهند شد…