تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
أوجه الاختلاف بين#vb.net & C
#1
Information 
السلام عليكم ورحمة الله وبركاته

سوف نشرح بإذن الله فى هذا القسم EntityFramework مع #C لكن معظم الاعضاء هنا يعملون ب vb.net , vb.6
لذلك سوف نحاول توجيه الاعضاء أولا لـ #C لأنها اللغة الاساسية لميكروسوفت الان وتطويرها يتم قبل البيسك دوت نت بالاضافة ان يونتى لتطوير الالعاب وزامرين لتطوير تطبيقات الموبايل بالسى شارب
وتقنية الكور فى الدوت نت اول اصدار لها كان للسى شارب والاصدار الثانى كان يدعم اللغتين
ايضا c# syntax تشبه لـ syntax لغات وتقنيات اخرى لحد كبير مثل جافااسكربت وجكويرى و css وجافا
والمزايا الكثيرة فى السى شارب التى تستحق ان تتعلمها
.
لذلك سوف اقوم اولا بكتابة معظم اوجه الاختلاف بين اللغتين لتكون مرجعا لكل المنتقلين من فيجول بيسك للسة شارب
وسوف بكون الموضوع مغلق لانى سوف اكتب الاختلافات على اكثر من مرة بنفس الموضوع هنا ليكون التنسيق متتالى للباحيثن عنه
ولعدم تفرغى بشكل كامل
وإن شاء الله اى سوال عن اللغة ممكن يكون قسم الاسئلة الخاص باللغة

انا كنت من مبرمجين فيجول بيك 6 و دوت نت الى انت قررت ان يكون مشروع التالى بالسى شارب وتحويل مشاريعى القديمة للسى شارب
وبقالى فترة كبيرة اعمل بها
بالاضافة الى ان معظم الشركات تطلب مبرمجين #C وتطلب دائما التقنيات الجديدة بطلبات الوظائف

ربنا يجعلها دروس مفيدة للجميع

وفقنا ووفقكم الله
#2
بالتوفيق باذن الله
تم الشكر بواسطة: mero5000
#3
فى البداية يجب ان نعرف ان لغة سى شارب تميز بين الحروف الكبيرة  والصغيرة (capital & small)
لذلك يجب ان ننتبه عند كتابة الكود

فى البداية سنعرف متغير رقمى لكى نرى مدى بساطة وسهولة اللغة

كود :
VB.net :
Dim x As Integer = 5

كود :
C# :
int x = 5;

لاحظ وجود علامة Semi-colon  او الفاصلة المنقوطة ;   نهاية الكود لكن ليس كل الاكواد فى السى شارب تنتهى بالفاصلة المنقوطة مثل جمل الشرط و جمل for    سوف نتعرف عليها ان شاء الله
ايضا فى السى شارب يتم تقديم نوع المتغير عن القيمة  عكس البيسك  فقط هكذا  
كود :
int x;
   كده عرفنا متغير رقمى  

الان بنفس الطريقة نجرب تعريف متغير نصى
كود :
VB.net :
Dim y As String

كود :
C# :
string y ;


وهذا قائمة أهم انواع Data Types



كما قلنا ان اللغة تميز  الاحرف الكبيرة والصغيرة لاحظ الجدول بالاعلى الفرق بين اللغتين .
ايضا ليست كل البيانات متشابه فى الاسم لاحظ
Boolean - bool
Date - DateTime
Integer - int

الان سنقوم بعرض بعض انواع Keyword  بجدول اخر




ان كان الامر غامض بعض الشيئ لكنى بإذن الله سوف اضع دروس عملى على سى شارب نفسها بنفس الموضوع هنا للاكواد التى يستخدمها معظمنا فى لغة البيسك دوت نت

## يتبع
#4
السلام عليكم

سنتكلم فى هذا الدرس عن الاوبريشن وتكوين الكود فى البييسك و سى شارب ربما ستكون الدروس غامضة لكن من بعد هذا الدرس ستكون اكثر سلاسة ووضح ان شاء الله


فى هذا الجدول بعض انواع Operators





اما تكويد الكود لا يختلف كثيرا عن الفيجول بيسك لكن مقارنة ب syntax السى شارب مع لغات اخرى كما ذكرنا بأول تعليق
نجد اخوانى ان كود forms  الاساسى  للفجيول بيسك بهذا الشكل

كود :
Vb.net :
Public Class Form1

End Class

اما فى السى شارب تكون بالشكل التالى
كود :
C# :
namespace WindowsFormsApp1
{
   public partial class Form1 : Form
   {
       public Form1()
       {
           InitializeComponent();
       }
   }
}

نلاحظ ان اكواد الفيجول بيسك تنتهى بى End Class بينما تنتهى اكواد السى شارب بالاقواس الغريبة هذه }
بكل بساطة وبدون تعقيد اخوانى كما لكل كود بداية يدوجد ايضا اغلاق الكود وهذا شامل كل اللغات والتقنيات وليست للدوت نت فقط
لو طبقنا هذا الامر على سى شارب نجد ان اكواد البداية والنهاية تكون بهذا الشكل
كود :
{
// your code
}

نلاحظ هنا كود comment او التعليق فى السى شارب
كود :
// التعليق هنا
/* التعليق هنا */


ايضا كما هو الحال فى الفيجول بيسك لا يصح ان نضع فنكشن داخل فنكشن ولا ميثود داخل ميثود  ولا داخل حدث الا بالنداء عليها
كود :
Vb.net :
Call MyMethod()

كود :
C# :
MyMethod();

نلاحظ تكوين الاكواد لما نضغط دبل كليك على الفروم لاظهار كود load form
كود :
Vb.net :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  REM your code
End Sub

كود :
C# :
private void Form1_Load(object sender, EventArgs e)
{
// your code
}

اعتقد ان الامور الان اكثر وضوحا بالنسبة لبداية ونهاية الكود خصوصا فى السى شارب لأن الكثير من مبتدأين السى شارب يجدون ان موضوع الاقواس حاجز صعب تعلمه
سنتكلم ان شاء الله عن تداخل الاكواد الكثيرة بيمثود اوحد او ببوتن واحد فى دروس متقدمة

وسوف نتكلم بإذن الله عن جمل الشرط و الميثود و معظم الاكواد المستخدمة لمعرفة كتابة كود سى شارب والفرق بيه وبين البيسك

واعذرونى على التاخير فى كتابة باقى الموضوع لأشغالى قليلا  
وفقنا ووفقكم الله
## يتبع
#5
السلام عليكم

ندخل سريعا على تطبيق ما تم كتابه فى الجداول التى بالاعلى بعد ان قمنا ايضاح كيفية تكوين شكل الكود
سنرى ان شاء الله الفرق بين الاكواد فى اللغتين وكيف تتم كتابتها

الجمل الشرطية :
كود :
Vb.net :

Dim number As Integer
number = 100

If number = 100 Then
MessageBox.Show("صح")
Else
MessageBox.Show("خطأ")
End If
كود :
C# :
int number;
number = 100;

if(number == 100)
{
MessageBox.Show("صح");
}
else
{
MessageBox.Show("خطأ");
}

هنا عرفنا متغير اسمه number  باللغتين واعطيناه قيمة 100 فى السطر الى تحتيه
فى لغة البيسك تتكون جملة الشرط من if – then - else – end if
اما السى شارب تكون بالشكل التالى
إقتباس :if(الشرط المستعلم عنه == القيمة)
{
ماذا نفعل اذا تحقق
}
else
{
ماذا نفعل ان  لم  تحقق
}

لاحظو شكل الاقواس فى السى شارب سواء جانب كلمة if ()
فى البيسك تكون = واحدة اما السى شارب == بالاضافة للاقواس تحت {} if   وتحت {} else




فى الكود السابق تكلما انا كان الشرط يساوى القيمة هنجرب نعكس الشرط اذا لم يتحقق

كود :
Vb.net :

If Not number = 100 Then
 MessageBox.Show("خطأ")
End If
كود :
C# :
if(number != 100)
{
MessageBox.Show("خطأ");
}

هنا نجد ان فى  البيسك ضفنا  if not  لنقول لو اذا لم يتحقق الشرط
اما السى شارب قلنا له  != وهى تعنى  ايضا ان لم يتححق الشرط  يمكنم مراجعة جدول  Operators
ولا ننسى حساسية اللغة للاحرف الكبيرة والصغيرة
كما نلاحظ ايضا ان الرسالة لا تظهر الا بتحقق الشرط
وللعلم الطريقة هذه كما قلنا سابقا واكررها لكم  ان  معظم اوريشن السى شارب هو نفسه موجود فى لغات اخرى بنسبة كبيرة  وان السى شارب لغة  المستقبل عن البيسك
يمكنكم تطبق بعض الامثلة والمقابل لها فى اللغلتين من الجدول مثل  (null - Nothing)
والجمل النصية كما هى  ("VB" – "C#")
نلاحظ ان فى جملة الشرط if لم يتم وضع فاصلة منقوطة ;  فيها والكود الى بداخل الشرط ليه له علاقة بالشرط لذلك هو كود سة شارب عادى ينتهى ب فاصلة منقوطة
جملة شرطية اخرى

Vb.net
كود :
:
Dim number1, number2 As Integer

number1 = 100
number1 = 200

If number1 = 100 And number2 = 100 Then
MessageBox.Show("صح")
Else
MessageBox.Show("خطأ")
End If


كود :
C# :
int number1 , number2;

number1 = 100;
number2 = 200;

if (number1 == 100 & number2 == 200)
{
MessageBox.Show("صح");
}
else
{
MessageBox.Show("خطأ");
}


نلاحظ هنا اننا  عرفنا متغيرن رقمين بنفس السطر وفصلنا بينها ب علامة ,  وهذه لا تخلف بين اللغتين
واعطينا لكل متغير قيمة مختلفة :  اذا كان الشرط  الاول  و الشرط الثانى كل منهما يساوى قيمة محددة
ولاحظ معى And - &   التى تعنى  و  فى الجملة الشرطية


بنفس الطريقة السابقة نكتب جملة اخرى

كود :
Vb.net
If number1 = 100 And number2 = 100 Then

كود :
C#
if (number1 == 100 & number2 == 200)


وهنا اعطينا لكل متغير قيمة مختلفة :  اذا كان الشرط  الاول  يساوى قيمة محددة  أو الشرط الثانى يساوى قيمة محددة
ولاحظ معى   || - or  التى تعنى  أو  فى الجملة الشرطية

ملاحظة :

كود :
فى سى شارب &&   تكتب AndAlso  
 


كود :
فى سى شارب تكتب ||  OrElse


كود :
If number1 Is number2 Then
تكتب فى السى شارب
if (object.ReferenceEquals(number1, number2)
كود :
If number1 IsNot number2 Then
تكتب فى السى شارب
if (!object.ReferenceEquals(number1, number2))
يتبع ##
تم الشكر بواسطة: asemshahen5 , asemshahen5 , dametucorazon , صالح حمادي , %Eman%
#6
السلام عليكم

سنتعرف على نوع اخر من الجمل الشرطية :

ويختلف اسمها من الفيجول بيسك Select Case الى السى شارب     switch ()

كود :
VB.net
       Dim number As Integer
       number = 100

       Select Case number
           Case 0
               MessageBox.Show("Zero")
           Case 1
               MessageBox.Show("One")
           Case 2
               MessageBox.Show("Two")
           Case Else
               MessageBox.Show("الرقم غير موجود")
       End Select


كود :
C#
           int number;
           number = 100;

           switch (number)
           {
               case 0:
                   MessageBox.Show("Zero");
                   break;
               case 1:
                   MessageBox.Show("One");
                   break;
               case 2:
                   MessageBox.Show("Two");
                   break;
               default:
                   MessageBox.Show("الرقم غير موجود");
                   break;
           }

نلاحظ ان بعد تعريف المتغير واعطائه قيمة  اذا وجد ال شرط فى اى من حالات ال Case فأنه ينفذ الامر المطلوب وإن لم يجده ينفذ امر اخر



الان نتعرف على شكل loops :

كود :
 VB.net
       For index = 1 To 10

       Next
       ======================================================
       For Each index In item

       Next
       ======================================================
       Do While YourCode

       Loop

كود :
           C#
           for (int i = 0; i < length; i++)
           {

           }
           ======================================================
           foreach (var item in collection)
           {

           }
           ======================================================
           do while (YourCode)
           {

           }
         



صائد و مانع الاخطاء :


كود :
       VB.net
       Try

       Catch ex As Exception

       End Try
كود :
           C#
           try
           {

           }
           catch (Exception)
           {

           
           }

ملاحظة اخوانى ان ال try ليس فقط قناص الاخطاء وانما ممكن ان يمنعها ولا يمكن الاستغناء عنه داخل اى حدث او ميثود

نحن فى هذا الدرس لم نعطى امثلة على الكود لعدة اسباب
اولا القارئ للدروس قد فهم شكل الكود وهو بالطبع يعرف كتابته بالفيجول بيسك فلن يكون الامر صعب علية فى السى شارب
ثانيا الدروس هذه هى لكسر حاجز الخوف من السى شارب والذى يتصوره بعض الناس بشفرات غير مفهومه وصعبة
وثالثا وهو الاهم الدروس بشكل العامل لاظهار اختلافات اللغة وليست دورس تعليمية او كورس كتابى عن البيسك او السى شارب
لكننا بالطبع بعد ان نقوم بذكر معظم الاختلافات بإذن الله سوف اكتب اكواد وميثود للسى شارب يستخدمها مبرمج الفيجول بيسك والبيسك 6 لتساعدة للانتقال الى السى شارب لكن سيكون عمليا

يتبع ##


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم