مهاجرت به #C

در دو شماره پیش در مورد تفاوت‌های زبان #C و VB.NET‌صحبت کردیم و این‌که این زبان‌ها از لحاظ ساختاری و نحوه کامپایل شدن چه تفاوت‌هایی دارند و مایکروسافت با ارائه VB.NET سعی در کوچ برنامه‌نویسان VB به سمت .NET شد. وجود NET . باعث شد شما تفاوت خاصی در مورد استفاده از کلاس‌ها و الگو‌ها نداشته باشید.
کد خبر: ۵۰۹۳۱۹

اما این تمام ماجرا نیست، اگر شما از آن دسته برنامه‌نویسان هستید که با VB.NET کار می‌کنید و قصد کوچ‌کردن به سمت #C را دارید، بهتر است تا پایان مقاله با ما همراه باشید. در این شماره تفاوت‌های گرامری این دو زبان را مورد بررسی قرار می‌دهیم.

قبل از هر چیز به یاد داشته‌باشید تمام کلمات کلیدی در VB.NET با حروف بزرگ نوشته می‌شود مثل Public, Private و … اگر در طول مقاله با عبارتی به همان شکل که در#C است مواجه شدید، بدانید مثل #C نوشته می‌شود ولی با حروف بزرگ شروع می‌شود.

۱ ـ سطح دسترسی‌ها : منظور از سطح دسترسی این است که یک شیء یا کلاس در کجا قابل استفاده است؛ مثلا در همان کلاس یا در کلاس‌های به ارث رسیده یا این‌که یک فضای نام توسط چه فضاهای نامی مورد استفاده قرار می‌گیرد.

کلمات کلیدی public، private، protected در هر دو زبان یکسان است، اما internal در VB.NET با Friend نشان داده می‌شود.

۲ ـ انواع داده اصلی: در هر دو زبان به یک گونه است، اما برای تاریخ که در #C با DateTime مشخص می‌شود در VB.NET به صورت Date معرفی می‌شود و مقدار بولی که در#C با bool مشخص می‌شود ولی در VB.NET با Boolean مشخص می‌شود و int به صورت Integer و float با Single معرفی می‌شود، در برای معرفی کردن یک متغیر از یک نوع ابتدا نوع آن را می‌نویسند، سپس نام متغیر؛ اما در VB.NET ابتدا Dim سپس اسم متغیر و بعد از آن As و نوع متغیر.

Dim x As Integer

۳ ـ بلاک‌های کد: منظور از بلاک‌های همان Scope‌هاست. در#C با علامت‌های {} مشخص می‌شود، اما در VB.NET در انتهای آن بلاک یک End می‌گذارند. بگذارید با چند مثال این موضوع را نشان دهیم.

ساختار شرطی If

If … Else If … End Else … Else… End

که در #C برای نشان دادن ساختار If از if/else استفاده می‌شود.

ساختار انتخابی یا همان switch :

Select Case … Case … Case Else End Select

در #C به صورت زیر است:

switch … case break … default break

ساختار حلقه for :

For … To … End For

در#C به صورت همان for است، برای مثال:

for(int i= 0; i«10; i++)

ساختار foreach (همان حلقه for بدون اندیس)

Foreach … In … Next

در #C به صورت:

foreach(int i in array)

۴ ـ حلقه های تکرار شرطی (whileو do-while): در #C به صورت while و do … while نوشته می‌شود، اما در Vb.NET به این شکل:

While … End While

Do While «condition» … Loop While or Do … Loop While «condition»

علاوه اینها شما می‌توانید از Until بجای While هم استفاده کنید.

۵ ـ معرفی توابع: توابع void (هیچ مقداری برنمی‌گردانند) در#C جای مقدار برگشتی از void استفاده می‌شود و در VB.NET از کلمه کلید Sub.

توابع با مقدار بازگشتی در C# قبل از نام تابع نوع مقدار بازگشتی مشخص می‌شود، اما در VB.NET به صورت زیر است:

Function Test() As Integer

End Function

بعد از معرفی تابع با استفاده از As نوع خروجی تابع را مشخص می‌کنیم.

۶ ـ کامنت‌گذاری: استفاده از کامنت‌ها برای مشخص کردن کاری که یک قطعه کد انجام می‌دهد کاملا مرسوم است. در C# شما می‌توانید با // یک خط را کامنت کنید یا کامنت بگذارید و برای کامنت‌های چند خطی از /* */ استفاده کنید. در بین این دو هر چیزی بنویسید جزو کامنت محسوب خواهد شد. در VB.NET کامنت را با ' نشان می‌دهند که متاسفانه امکان کامنت‌های چند خطی در VB.NET وجود ندارد.

بعضی از کلمات کلیدی دیگر را به صورت خلاصه‌وار در زیر آورده‌ایم:

C# : this – VB.NET : Me

C# : delegate – VB.NET : Address Of

C# : null – VB.NET : Nothing

C# : abstract – VB.NET : MustInherit

C# : sealed – VB.NET : NotInheritable

ارث بری و استفاده از اینترفیس‌ها، C2 اینترفیس و C3 یک کلاس است.

C# : class C1 : C2, C3 – VB.NET : C1 Implement C2 Inherits C3

در این شماره سعی شد موارد اصلی و پر کاربرد آورده شود؛ اما برای اطلاعات بیشتر می‌توانید به لینک زیر مراجعه کنید:

http://www.codeproject.com/Articles/9978/Complete-Comparison-for-VB-NET-and-C

امیربهاءالدین سبط‌الشیخ

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها