آموزش سی‌شارپ C# – بخش ۳۳

آموزش سی‌شارپ C# – بخش ۳۳
  • 1392/2/7
  • Jeff Mosawy
  • 22
  • مقدمه

هنگامی که شروع به کدنویسی می‌کنید و در حال طراحی و پیاده‌سازی یک برنامه‌ی خاصی توسط یک زبان خاصی هستید، بلاشک درمیان راه با مشکلاتی روبرو خواهید شد که بدلایلی مانند حواس‌پرتی، عدم تسلط کافی و … باعث ایجاد خطا در عملکرد برنامه می‌شود؛ یا جتی ممکن است برنامه اصلاً Compile نشود!

یکی از تکنیک‌هایی که در هنگام برنامه‌نویسی باید به آن تسلط کافی‌ای داشته باشید، نحوه Debug کردن برنامه (اشکال‌زدایی) است. به‌صورت کلی ما دو نوع خطا داریم؛ Syntax Error (خطای نحوی) و Logic Error (خطای منطقی). یک کامپایلر و IDE (در اینجا یعنی Visual Studio) تنها می‌تواند خطاهایی که بدلیل نوشتن اشتباه کد و یا جا انداختن یک Semicolon را ردیابی کند (Syntax Error)، اما هیچ‌گاه نمی‌تواند که یک خطای منطقی مثل تقسیم یک عدد بر صفر را پیدا کند!

  • اشکال‌زادایی برنامه (Debugging) قسمت اول

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

Design-Time Error جزو خطاهایی هستند که راحت می‌توان آن‌ها را ردیابی و رفع نمود؛ چرا که نرم‌افزار Visual Studio به‌صورت خطوط رنگی انواع خطاها را برای شما نمایش می‌دهد. در هنگام کدنویسی شما با سه نوع خط رنگی مواجه خواهید شد؛ آبی، قرمز و سبز.

خط‌هایی که به رنگ آبی هستند، با نام Edit and continue معروف هستند که بدین معنی‌ست شما می‌بایست تغییری در کدهایتان ایجاد کنید بدون اینکه برنامه متوقف شود.

خط‌های به رنگ قرمز با نام Syntax Error معروف هستند که نمایانگر این هست که یک غلط نحوی در کدنویسی شما وجود دارد.

خط‌های به رنگ سبز، اخطارهای کامپایلر (Compile Warning) هستند که زمانی این خطا را می‌بینید که کامپایلر متوجه می‌شود که یک مشکل کوچکی وجود دارد که ممکن است بعدها برای شما مشکل‌ساز باشد؛ همانند تعریف متغیری که هرگز از آن استفاده نشود!

خط‌های آبی رنگ:

در عکس پایین، شما می‌توانید یک خط آبی رنگ زیر عبارت مشخص شده را ببینید. (ممکن است نسخه‌های جدید Visual Studio این را نیز به‌عنوان خط قرمز رنگ در نظر بگیرد)

1-blue_wavy_line

این خط به این دلیل ظاهر شده چونکه ما TextBoxای با نام textBox2 در فرم نداریم؛ بلکه یک TextBox در فرم وجود دارد که نامش textBox1 است. پس می‌توانیم تنها با پاک کردن عدد ۲ و قرار دادن عدد ۱ به‌جای آن، به ادامه کدنویسی خود بپردازیم.

اگر نشانگر موس خود را بر روی خطاها نگه‌دارید، توضیحاتی در رابطه با خطای ایجاد شده نمایش داده می‌شود، اگرچه همیشه این توضیحات به‌طور کامل به شما کمک نخواهند کرد، ولی دیدن و خواندن آن‌ها خالی از لطف نیست!

خط‌های قرمز رنگ:

این نوع خطاها به آن Syntax Error می‌گویند. Syntax در واقع گرامر زبان برنامه نویسی است. همانطور که در زبان فارسی بایست قوانینی را در هنگام صحبت کردن رعایت کنیم تا مفهوم به صورت درست منتقل شود، در زبان‌های برنامه‌نویسی نیز این حکایت صدق می‌کند.

در عکس زیر ما یک Semicolon را در انتها فراموش کردیم:

2-red_wavy_line

اگر نشانگر موس را روی آن نگه‌دارید، راهنمایی لازم را به شما خواهد کرد:

3-red_wavy_line2

در عکس بعدی، می‌بینید که ما یک پرانتز فراموش کردیم که ان را به ما نمایش می‌دهد:

4-red_wavy_line3

خط‌های سبز رنگ:

این نوع خطاها به آن Compile Warning می‌گویند. به عکس زیر نگاه کنید:

5-green_wavy_line

اگر نشانگر موس را بر روی آن نگه‌داریم، خواهیم دید:

6-green_wavy_line2

این خطا می‌گوید که شما متغیری با نام CompilerWarning تعریف و مقداردهی شد،‌ اما هیچ‌گاه از آن استفاده نشد.

جهت دریافت ای بخش آموزشی به‌صورت یک فایل PDF، اینجا را کلیک کنید!

دیدگاه خود را وارد کنید
تعداد دیدگاه ها : 22 دیدگاه
  1. سلام،،آقا ممنون از شما ولی من چطور مطالب رو از روی سایت بردارم آخه کپی هم نمیشه…..

    1. سلام دوست عزیز،

      متوجه منظور شما نشدم؛ مطالب رو می‌خواید بردارید کپی کنید که بعداً مطالعه کنید؟ من فایل PDF رو در انتهای مطلب گذاشتم، می‌تونید که فایل PDF رو دانلود کنید و از آن مطالعه کنید.

      موفق باشید!

  2. سلام آقای موسوی
    ببخشید دفعه قبل اسم شما رو اشتباه نوشتم
    یه سوال دارم که آینده بشر بهش بستگی داره
    اگه بخوام با asp.net و sql تو وب کار کنم نیازه لاینسس مایکروسافتو بخرم یا میشه کرک شده هم استفاده کنم آخه از یه جایی شنیدم باید به سایت مایکروسافت وصل باشی و نمیشه از برنامه کرک شده استفاده کرد

    1. سلام دوست عزیزم،

      شما برای ساخت برنامه و سایت خود بر پایه ASP .NET حتی نیاز به کرک ندارید؛ چرا که محصولات مایکروسافت به دو قسمت رایگان و پولی تقسیم شده است که بیش از ۸۰٪ کارهای موجود در بازار می‌توانند با نسخه‌های رایگان انجام شوند.
      فقط هنگامی که بخواید سایت خودتون رو تحت وب بالا بیارید، نیاز به یک سرور بر پایه Windows Server هستید که می‌بایست بابت آن پول پرداخت کنید.
      موفق باشید!

  3. سلام دوست عزیز . از مطالب ارزنده اتان خیلی ممنون و سپاسگزارم . خیلی چیزها یاد گرفتم . من تاقسمت 33 را گرفتم و فکر می کنم مطالب ناقص مانده ، آیا در سایت نگذاشته اید یا من نتونستم پیدا کنم . با تشکر

    1. سلام دوست عزیزم،

      متأسفانه توی این دو هفته‌ای که گذشت، بنده در جایی بودم که امکان نوشتن آموزش‌ها برای من مقدور نبود. برای من دعا کنید انشاءالله از این هفته مجدداً شروع خواهم کرد! ممنونم از تماستون.

  4. سلام
    نویسنده عزیز این اموزش ها برای من که دانشجو ای تی هستم خیلی مفید بود ازین بهتر پیدا نکردم نمیدونم چطوری ازتون تشکر کنم دعا میکنم عاقبت بخیر بشین
    یه مشکلی داشتم قسمت ۱۴ اموزش رو نمیتونم تو سایت پیدا کنم اگه زحمت نیست لینکش رو برام بزارین؟؟؟

    1. با سلام.
      خوشحالیم که آموزش ها مورد توجه شما قرار گرفتن .
      با اجازه از دوست عزیزم آقای موسوی .
      لینک : https://www.gooyait.com/1391/11/16/c-sharp-tutorial-part-14.html
      موفق باشید ….

    2. جناب زارع عزیز از پاسخ گویی شما متشکرم
      براتون ارزوی موفقیت میکنم
      باز هم به خاطر این اموزش معرکه از شما عزیزان تشکر میکنم واقعا خسته نباشید
      بی صبرانه قسمت های بعدی هستم

  5. سلام آقای موسوی،من برنامه ای میخوام بنویسم که فایل رو به صورت ورد دریافت کنه و برنامه ای که داخل فایل به صورت سی شارپ هست رو بخونه و هر کلاس فایل ورودی رو در فایل دیگه چاپ کنه، این برنامه رو با سی شارپ میخوام بنویسم،ممنون میشم اگه کمکم کنین،اگه میشه راهنمایی هاتونو به ایمیلم بفرستین بخونم،اگه خود برنامه رو هم داشته باشین خیلی کمک بزرگی میکنین.مرسی

    1. سلام دوست عزیز،

      تا اینجا رو متوجه شدم که می‌خواید یک فایل ورد که حاوی کد‌های سی‌شارپ هست رو بخونید از طریق برنامه، اما بعد از آن را متوجه نشدم. لطفاً توضیح دهید. ممنون.

  6. سلام
    آقای موسوی در مورد ویندوز سرور خوب متوجه نشدم
    یعنی اگه بخوام یه سایت راه اندازی کنم نیاز به یه ویندوز سرور قانونی دارم و احتمالا یه کامپیوتر سرور.
    خب این یه ضعف بزرگه در مقابل Java و PHP که از لینوکس استفاده میکنه
    سوال دیگه اینه که تو سایت tiobe.com زبان C رو به عنوان محبوبترین زبان معرفی کرده اگه C++ همون سی هست که شی گرایی بهش اضافه کردن پس چرا هنوز از سی استفاده میشه
    ببخشید این سوالارو اینجا مطرح کردم

    1. سلام دوست عزیز،

      وقتی که شما سایتی بر پایه ASP .NET بخواید پیاده‌سازی کنید، تنها لازمه که یک سرور ویندوز تهیه کنید که از قبل ویندوز سرور بر روی آن نصب شده باشه. شما کاری بر روی کامپیوتر خودتون نباید انجام بدید!
      قطعاً هم این یک ضعف به‌حساب می‌یاد؛ چرا که لینوکس و پایگاه داده‌ی MySQL کاملاً رایگان هست؛ درصورتی که محصولات مایکروسافت اینگونه نیست!
      زبان سی و سی‌پلاس‌پلاس تقریبا (و نه ۱۰۰٪) مثل هم هستند؛ تفاوت عمده‌ی آن، در شیء گرا بودن C++ هست. هنوز از زبان سی استفاده می‌شه چرا که بعضی پروژه‌ها (خصوصاً نرم‌افزارهایی که در زمینه امنیت کار می‌کنند) لازمه که با زبان C و نه با C++ نوشته شوند؛ اما تقریباً هر کاری را که در C می‌توانید انجام دهید، در C++ هم می‌شه. توی شرکت‌ها هم موقع استخدادم، شما می‌تونید هرکدام از آن‌ها را استفاده کنید؛ مگر اینکه شما را مجبور به استفاده یکی از آن‌ها کنند!

      موفق باشید!

  7. سلام . اول تشکر ویژه کنم بابت زحماتی که می کشید واقعا جای تقدیر داره . من رشته کامپیوتر هستم خودم ولی به جرات میگم که اموزشهای شما خیلی به درد من خورد و توی درس برنامه نویسی پیشرفته ۲ خیلی تونستم از این آموزشها کمک بگیرم . من فایل های PDF تمامی قسمت هارو ذخیره کردم و دوستانمم دادم همچنین آدرس سایت مفید و با ارزشتون رو . بابت تمام زحماتتون متشکرم و امیدوارم توی زندگیتونم همینجور موفق باشید . ایمان شهسواری از بندرعباس ♥

    1. سلام دوست عزیزم،

      خیلی خوشحالم که اینقدر راضی هستید؛ واقعاً این پیام‌های شما به من این انرژی رو می‌ده که با احساس مسئولیت بیشتری به کارم ادامه بدم. برای من دعا کنید.
      موفق باشید!

    2. محتاجیم به دعا دوست عزیز . آدمهایی مثل شما که دانششون رو به هر طریقی در اختیار دیگران قرار میدن نیاز به دعا ندارن چرا که وجودتون پاکه . مرسی از سایت خوبتون .

  8. سلام میخواستم راهنمایی ازتون بگیرم برای وب سایتم میخوام سبد خرید بذارم
    یعنی حالت فروشگاه بگیره
    نمیدونم requeste قیمت اجناس انتخابی رو چطور به بانک بفرستم میشه راهنماییم کنید ممنون

    1. دوست عزیز سلام
      این کار رو میشه با افزونه ها و درگاه های پرداخت انجام داد

  9. سلام ممنون از آموزشهاتون میشه قسمتهای آموزشی گذشته رو برام میل کنید چون به اینترنت دسترسی همیشگی ندارم.

  10. بخش های بعدی ای در کار نیست ؟؟؟؟؟؟ واقعا حیفه همچین آموزش خوبی نیمه تموم بمونه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *