* ثالثاً : في حالة الشروط في VB.net اكتب = أما في C# اكتب == ، كما ستجد العلامة != لعدم المساواة بدلاً من <> .
* رابعاً : تعتمد لغة VB.net على جمل مثل End وتستخدمها في الاجراءات والكلاسات وغيرها مثلاً :
بينما تجدها في C# باستخدام الأقواس :
وكذلك في الكلاس والاجراءات أيضاً :
VB.net :
Imports System
Namespace MyNameSpace
Class HelloWorld
'Entry point which delegates to C-style main
Private Function
Public Overloads Shared Sub Main()
Main(System.Environment.GetCommandLineArgs())
End Sub
Overloads Shared Sub Main(args() As String)
System.Console.WriteLine("Hello World")
End Sub 'Main
End Class 'HelloWorld End Namespace 'MyNameSpace
C# :
using System
Namespace MyNameSpace
{
class HelloWorld
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello
World")
}
}
}
* خامساً ، في فيجوال بيسك .net سوف تستخدم And,Or,Not,OrElse بينما في C# سوف تستخدم && ! .
* سادساً : عند جمع النصوص استخدم & في VB.net ولكن في C# استخدم + .
* سابعاً : else if في C# هي ElseIf في VB.net
* ثامناً : كما اسلفنا في موضوع End ، ففي الحلقات التكرارية تعتمد C# على الأقواس أيضاً :
for (i = 2; i < = 10; i += 2)
{
System.Console.WriteLine(i);
System.Console.WriteLine(i*10);
}
وفي حالة كونها سطر واحد يمكن الاستغناء عن الأقواس :
for (i = 2; i < = 10; i += 2)
System.Console.WriteLine(i);
أما في VB.net فهي تأخذ شكلاً موحداً :
For c = 2 To 10 Step 2
System.Console.WriteLine(c)
Next
ونفس الأمر بالنسبة لباقي الحلقات التكرارية While و for each وخلافه .
* تاسعاً : بالنسبة للمصفوفات وخلافه يستخدم القوس [] بدلاً من () في VB.net .
C#
int[] nums = {1, 2, 3};
for (int i = 0; i < nums.Length; i++)
Console.WriteLine(nums[i]);
Vb.net
Dim nums() As Integer = {1, 2, 3}
For i As Integer = 0 To nums.Length - 1
Console.WriteLine(nums(i))
Next
* لن تجد تعليقاً Comment لأكثر من سطر في VB.net مثل /* */ في C# ، وكذلك XML Comments على الرغم من أنني قرأت انها ستكون مدعومة في الاصدارة القادمة .
* في C# سوف تستخدم العلامة المئوية % بدلاً من Mod في VB.net للحصول على باقي القسمة .
* لن تدعم لك VB.net استخدام Bitwise Operations في حالة Assignment على عكس ال C# حيث تتيح لك ذلك .
الآن نترك عنا الفروقات اللغوية ، فسوف نشير للباقي منها في نهاية المقال ، نتطرق هنا على عجالة للفروقات الفعلية :
* أول تلك الفروقات هي case sensitive ، حيث أنه في VB.net فإن Ahmed هي نفسها ahmed وهو ما لا يوجد في أي لغة في العالم سوى Basic ، ولا أستطيع أن أحدد فيما إذا كان هذا ميزة أم عيب .
مميزات في VB.net - باختصار - :
* دعم ال optional parameters موجود في VB.net وليس موجود في C# .
* with موجود في VB.net وليس موجود في C# .
* Catch ... When موجودة في VB.net وهي تتيح نظاماً أفضل لفلترة الأخطاء .
* يقوم VB.net بعمل Compile للكود في BackGround ، وهذه ميزة في التطبيقات الصغيرة ولكنها عيب في التطبيقات الكبيرة حيث تلاحظ بطء الفيجوال ستوديو .
مميزات في C# - اختصار - :
* يدعم C# ما يعرف باسم unsigned types ، وهو ما يمكنك استخدامه أيضاً في VB.net ولكنه ليس جزءاً اساسياً من اللغة .
* الميزة الأقوى في C# والتي لا تتوفر في VB.net هي السماح باستخدام
unsafe أو unmaneged code ما يتيح لك العمل على Pointers وخلافه ، ما يفتح لك آفاقاً واسعة في عدة مجالات مثل معالجة الصور image processing وخلافه .
ولعل هذه الميزة مما جعل C# قريبة من C++ من ناحية تعاملها مع كود منخفض المستوى Low Level Code وهو ما يجعل سي شارب الاختيار الأمثل للكثيرين .
* لن تجد increment و decrement في VB.net حيث ستتضطر إلى كتابة كود بالشكل التالي :
بينما في C# يمكنك القيام بذلك بالشكل التالي :
* يمكنك أن تجد الخاصية sizeof في C# بينما لن تجدها في VB.net .
كان هذا موجزاً لأوضح الاختلافات والتي ستتعامل معها كثيراً ، وكما لاحظت فهي في أغلبها ليست ذات قيمة كبيرة .
في النهاية : ماذا أختار ؟
إذا كنت منتقلاً من VB 6.0 فعليك ب VB.net أما إذا كانت لديك خبرة ب C/C++/Java فعليك ب C# وإذا كنت جديداً في مجال البرمجة فأنت حر في اختيار ما يناسبك .
وفي النهاية ومهما كان اختيارك قم بالاطلاع على اللغة الثانية - علشان تضحك على الناس وتقول انا ببرمج بلغتين مش لغة واحدة - ، ويمكنك ايضاً في هذه الحالة أن تبرمج ب J# ويبقى اسمك ادام الناس بيبرمج ب 3 لغات
في آخر هذا الدرس أحيلك إلى هذا الرابط (متميز) ويشرح الموضوع بتفصيل كامل ، أتمنى لك الاستفادة منه .
http://www.codeproject.com/dotnet/vb...difference.asp
أيضاً الملف من موقع مايكروسوفت لتوضيح الفروقات :
http://support.microsoft.com/kb/308470
والسلام عليكم ورحمة الله وبركاته .