مهاجرت به #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

 




تاريخ : پنج شنبه 27 مهر 1391برچسب:, | | نویسنده : مقدم |