موضوع مقاله: مقایسه سی‌شارپ و ویژوال بیسیک دات‌نت | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # مقایسه سی‌شارپ و ویژوال بیسیک دات‌نت | مقدمه: سی شارپ و ویژوال بیسیک دو زبان ابتدایی (اصلی) اند که برای برنامه‌نویسی روی چارچوب دات نت استفاده می‌شوند. | ## بخش 1: مقایسه سی‌شارپ و ویژوال بیسیک دات‌نت | دو زبان سی شارپ و ویژوال بیسیک دات نت ار ساختارهایی شبیه به دیگر زبان‌های سطح بالای جدید مثل جاوا و سی شارپ بهره می‌برند. هر چند جاوا و دات نت بی‌شمار است در نتیجه ما می‌توانیم آن‌ها را در مقایسه جاوا و سی شارپ مشاهده کنیم. پشتیبانی چند زبانی زمان اجرا یکی از اهداف اصلی دات نت پشتیبانی چند زبانی زمان اجرا است. قصد این طراحی این بود که همهٔ زبان‌های مختلف مایکروسافت باید سطح دسترسی یکسانی به تمام ویژگی‌های سیستم عامل داشته باشد، باید قادر به نمایش دادن سطح یکسانی از توان و قابلیت استفاده و آسان تر کردن باشد که به وسیلهٔ یک ماژول در یک زبان بر حسب آنکه در زبانی دیگر نوشته شده‌است فراخوانی می‌شود. در پیاده‌سازی، همهٔ زبان‌های دات نت از موتور زمان اجرای یکسان و درخت نحو مجرد یک شکل و زبان میانه رایج بهره می‌برد. بعلاوه همه زبان‌های دات نت به ویژگی‌های پایگاه شامل زباله روبی، پیوند دادن به زبان وراثتی، مدیریت استثناء و اشکال زدایی دسترسی دارند. این اجازه می‌دهد که خروجی یکسان باینری به وسیلهٔ هر زبان برنامه‌نویسی دات نت تولید شود. توسعه محیط ویژوال استادیو تفاوت‌های کمتری در توسعه محیط برای سی شارپ و ویژوال بیسیک دات نت فراهم می‌آورد. پس از انتشار هر نسخه ویژوال استادیو، تفاوت بین توسعه محیط‌ها برای این ربان‌ها کاهش می‌یابد. مثلآ نسخه‌های اولیه ویژوال استادیو دارای حمایت ضعیف برای Intelesens در سی شارپ در مقایه با ویژوال بیسیک دات نت داشت و هیچ سابقهٔ ارائهٔ کامپایل برای سی شارپ نداشت. در همان حال، تفاوت‌های اصلی ای در توسعهٔ محیط با اضافه کردن ویژگی‌هایی برای ویژوال بیسیک دات نت به وجود آمد که در ویژوال بیسیک ۶ شامل موارد زیر است: فضای نامِ پیش فرض، مخفی است. (کاربر می‌تواند آن‌ها را نشان دهد) سابقه ویرایش یک ویژگی محیط برنامه‌نویسی ویژوال استادیو است که به موجب آن کد نوشته شده توسط برنامه‌نویس با هدف شناسایی خطا بدون نیاز به ساخت راه حل هم‌زمان کامپایل می‌شود. این ویژگی برای ویژوال بیسیک از دات نت ۱٫۱ فراهم آمده‌است و در نسخه‌های ابتدایی ویژوال استادیو برای ویژوال سی شارپ عرضه شده‌است و در سرویس پک ۱ برای نسخه‌های استاندارد و بالاتر قابل استفاده است. | ## بخش 2: مقایسه سی‌شارپ و ویژوال بیسیک دات‌نت | یک ایراد سی شارپ این است که پنل فهرست خطا تا زمانی که راه حل بازسازی نشود بروز رسانی نمی‌شود. چنین موردی در ویژوال بیسیک وجود ندارد زیرا پنل فهرست خطا با پس زمینه کامپایلر هماهنگ شده‌است. این یک ویژگی برای پروژه‌های بزرگ است که می‌توان به میزان قابل توجهی زمان مورد نیاز برای شروع اشکال زدایی محیط توسعه مجتمع را کاهش داد. ویژگی‌های زبان بخش عمده‌ای از تفاوت بین سی شارپ و ویژوال بیسیک از نظر فنی نحو آن‌ها است. به این معنا که بسیاری از ویژگی‌ها در هر دو زبان هستند، اما بعضی چیزها ساده‌تر در یک زبان نسبت به دیگری انجام می‌شود. در واقع بسیاری از تفاوت‌های بین دو زبان در اطراف محیط برنامه‌نویسی متمرکز شده‌است. XML واقعی اعلام تاریخ با استفاده از نحو #1/1/2000#.(M/dd/yyyy) ماژول (اگر چه سی در شارپ کلاس استاتیک با معانی دیگر مهر و موم شده‌است، اما هر رشته به صورت جداگانه را می‌توان به عنوان استاتیک اعلام کرد) فضای نام ویژگی‌هایی از سی شارپ که در ویژوال بیسیک دات نت یافت نمی‌شود بلوک‌های کد نا امن (مثل سی + + / فناوری دات نت)از طریق کلمه کلیدی unsafe اعطاء می‌شود. واسط جزئی تکرارکننده و کلمه کلیدی yield توضیحات چند خطی (توجه داشته باشید که محیط برنامه‌نویسی ویژوال استودیو ازتوضیحات چند خطی برای ویژوال بیسیک دات نت پشتیبانی می‌کند) کلاس‌های ایستا (کلاس‌هایی که نمی‌توانند دارای عضوهای غیر ثابت باشند، هر چند ماژول‌های ویژوال بیسیک اساساً کلاس‌های استاتیک را با معانی دیگر مهر و موم می‌کند) می‌تواند از مفاهیم checked و unchecked برای کنترل دقیق سرریز وچک کردن پاریز استفاده شود. دیگر ویژگی‌های ویژوال بیسیک دات نت که قابل اجرادر سی شارپ نمی‌باشد تبدیل بولی ارزش واقعی به صحیح ممکن است از -۱ یا ۱ بسته به تبدیل استفاده کند. در حالیکه سی شارپ نمادها را جدا می‌کند، == برای مقایسه و = برای مقدار دهی متغیر. به دلیل این واقعیت کارایی نرم‌افزار افزایش می‌یابد و شانس اشتباهات نام دهی و دیگر خطاهای برنامه‌نویسی را برطرف می‌کند. دیگر ویژگی‌های سی شارپ که قابل اجرادر ویژوال بیسیک دات نت نمی‌باشد به صورت پیش‌فرض عملیات عددی چک نمی‌شود. با این حال، برنامه‌نویس می‌تواند عملیات محاسباتی را در چهار چوب فعال چک کردن سرریز بررسی نماید. | ## بخش 3: مقایسه سی‌شارپ و ویژوال بیسیک دات‌نت | هرچند در ویژوال بیسیک دات نت این نمادها از هم جدا شده‌اند، + برای عمل جمع و از & برای الحاق استفاده می‌شود، اگر چه برای الحاق + نیز می‌تواند استفاده شود. در سی شارپ پرانتزها، ، برای محدود کردن بلوک‌ها استفاده می‌شود، که این برای برنامه نویسانی با تجربه استفاده از زبان‌های گسترده و پیشرفته مانند سی شارپ و جاوا بیشتر آشنا است. بعلاوه، اگر در سی شارپ یک بلوک تنها متشکل از یک تک عبارت باشد، پرانتز حذف می‌شود. یا به عنوان مثال اگر در سی شارپ در کد نویسی عبارتی نامعتبر بنویسیم نمیتوانیم انرا اجرا کنیم زیرا کامپایلر سی شارپ اجازه ی این کار را نمی دهد و میگوید که این عبارت برای من ناشناس است درحالی که در ویژوال بیسیک این کار را میشه انجام داد و میشه پروژه رو اجرا کرد و خطای ویژوال بیسیک در مفسر گرفته میشود سی شارپ به بزرگ وکوچک بودن حروف حساس است در حالی که ویژوال بیسیک دات نت این گونه نیست. ویژوال استادیو حالت متغیرها را به محض این که در ویژوال بیسیک دات نت تایپ می‌شود درست می‌کند. برنامه نویسان سی شارپ به‌طور معمول نوع نام را با حروف درشت می‌نویسند و عضو و نام متغیر را با حروف کوچک می‌نویسند. البته، این می‌تواند برای کسانی که کد سی شارپ را به یک زبان غیر حساس به بزرگ وکوچک بودن حروف تبدیل می‌کنند، مانند ویژوال بیسیک، یا کسانی که به خواندن زبان حساس به بزرگ وکوچک حروف عادت ندارند مشکل ساز باشد. کلمات کلیدی ویژوال بیسیک به بزرگ وکوچک بودن حروف حساس نیست که به این معنی است که هر ترکیبی از حالت‌های بزرگ و کوچک در کلید واژه‌ها قابل قبول است. با این وجود ویژوال استودیو به صورت خودکار تمام کلمات کلیدی ویژوال بیسیک را به‌طور پیش‌فرض به فرم حروف بزرگ تبدیل می‌کند. سی شارپ به بزرگ وکوچک بودن حروف حساس است و تمام کلمات کلیدی سی شارپ به صورت کوچک است. ویژوال بیسیک و سی شارپ درکلمات کلیدی بسیاری سهیم اند، با این تفاوت که (به یاد داشته باشید که ویژوال بیسیک به بزرگ وکوچک بودن حروف حساس نیست) کلمات کلیدی ویژوال بیسیک نسخه‌هایی با حروف بزرگ از کلمات کلیدی سی شارپ می‌باشند. | ## جمع‌بندی | مدیریت مرجع تهی انجام می‌شود، درحقیقت در ویژوال بیسیک عملگر = مقدار درست را در صورت تهی بودن هر دو و مقدار غلط را در صورت تهی بودن یکی برمی‌گرداند (و اگر هر دو تهی نباشند از روش equals ارزیابی می‌شود).