تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 1 از 1

نام تاپيک: مقایسه اجمالی ۴ زبان J#.net ،c++.net ،vb.net و C#.net

  1. #1
    اگه نباشه جاش خالی می مونه Saeid.Online's Avatar
    تاريخ عضويت
    Jul 2006
    محل سكونت
    Data Bus
    پست ها
    210

    13 مقایسه اجمالی ۴ زبان J#.net ،c++.net ،vb.net و C#.net

    در این مقاله به بررسی و مقایسه اجمالی ۴ زبان J#.NET ،C++.NET ،VB.NET و C#.NET پرداخته میشود که این مقایسات به کمک مثال بیان میشود. این مقاله برای افرادی که قصد آموختن یکی از این زبانها را دارند بسیار مفید و کارآمد میباشد.

    فقط شرمنده كه در بعضي از دستورها جاي ; و . عوض شده --------------------------------------------------------------------------------
    تعریف متغیرها

    [VB.NET]
    Dim x As Integer
    Public x As Integer = 10

    [J#.NET]
    int x;
    int x = 10;

    [C++.NET]
    int x;
    int x = 10;

    [C#.NET]
    int x;
    int x = 10;

    نوشتن توضیحات در برنامه

    [VB.NET]
    ' comment
    x = 1 ' comment
    Rem comment

    [J#.NET]
    // comment
    /* multiline
    comment */
    /**
    Class Documentation
    */

    [C++.NET]
    // comment
    /* multiline
    comment */

    [C#.NET]
    // comment
    /* multiline
    comment */


    انتساب

    [VB.NET]
    nVal = 7

    [J#.NET]
    nVal = 7;

    [C++.NET]
    nVal = 7;

    [C#.NET]
    nVal = 7;

    دستورات شرطی

    [VB.NET]
    If nCnt <= nMax Then
    nTotal += nCnt ' Same as nTotal = nTotal + nCnt.
    nCnt += 1 ' Same as nCnt = nCnt + 1.
    Else
    nTotal += nCnt
    nCnt -= 1
    End If

    [J#.NET]
    if (nCnt <= nMax){
    nTotal += nCnt;
    nCnt++;
    }

    [C++.NET]
    if(nCnt < nMax) {
    nTotal += nCnt;
    nCnt++;
    }
    else {
    nTotal += nCnt;
    nCnt--;
    };

    [C#.NET]
    if (nCnt <= nMax)
    {
    nTotal += nCnt;
    nCnt++;
    }
    else
    {
    nTotal +=nCnt;
    nCnt--;
    }
    دستورات انتخابی

    [VB.NET]
    Select Case n
    Case 0
    MsgBox ("Zero")
    'VB.NET exits the Select at the end of a Case
    Case 1
    MsgBox ("One")
    Case 2
    MsgBox ("Two")
    Case Else
    MsgBox ("Default")
    End Select

    [J#.NET]
    switch(n) {
    case 0:
    System.out.println("Zero\n");
    break;
    case 1:
    System.out.println("One\n");
    break;
    default:
    System.out.println("?\n");
    }

    [C++.NET]
    switch(n) {
    case 0:
    printf("Zero\n");
    break;
    case 1:
    printf("One\n");
    break;
    case 2:
    printf("Two\n");
    break;
    default:
    printf("?\n");}

    [C#.NET]
    switch(n)
    {
    case 0:
    Console.WriteLine("Zero");
    break;
    case 1:
    Console.WriteLine("One");
    break;
    case 2:
    Console.WriteLine("Two");
    break;
    default:
    Console.WriteLine("?");
    }

    حلقه For

    [VB.NET]
    For n = 1 To 10
    MsgBox("The number is " & n)
    Next

    For Each prop In obj
    prop = 42
    Next prop

    [J#.NET]
    for(n=1; n<11;n++)
    System.out.println("The number is " + n);

    [C++.NET]
    for(int n=1; n<11; n++)
    printf("%d\n",n);

    [C#.NET]
    for (int i = 1; i <= 10; i++)
    Console.WriteLine("The number is {0}", i);
    foreach(prop current in obj)
    {
    current=42;
    }

    حلقه While

    [VB.NET]
    While n < 100 ' Test at start of loop.
    n += 1 ' Same as n = n + 1.
    End While

    [J#.NET]
    while (n < 100)
    n++;

    [C++.NET]
    while(int n < 100)
    n++;

    [C#.NET]
    while (n < 100)
    n++;

    انتقال پارامترها با مقدار

    [VB.NET]
    Public Sub ABC(ByVal y As Long)
    ...
    End Sub
    ABC(x)
    ABC((x))

    آرگومان y با مقدارش منتقل ميشود. اگر زيربرنامه ی ABC مقدار y را تغيير دهد اين تغييرات تاثيری بر روی x نخواهد داشت.
    شما ميتوانيد پارامترها را مجبور کنيد که با مقدار منتقل شوند بدون توجه به چگونگی تعريف آنها. اين کار را می توانيد با گذاشتن يک جفت پرانتز () ديگر انجام دهيد.

    [J#.NET]
    اشياء همواره با آدرس و انواع داده ی اوليه هميشه با مقدار منتقل ميشوند.

    [C++.NET]
    MyMethod(i,j);

    [C#.NET]
    توجه کنيد که هيچ راهی برای انتقال انواع مرجع (اشياء) منحصرا از طريق مقدار وجود ندارد.

    يک متد تعريف شده:


    void ABC(int x)
    {
    ...
    }
    و فراخوانی اين متد :

    ABC(i);

    انتقال پارامترها با آدرس

    [VB.NET]
    Public Sub ABC(ByRef y As Long)
    End Sub

    ABC(x)

    پارامتر y به صورت ByRef (با آدرس) شده است. اگر ABC مقدار y را تغيير دهد اين تغييرات روی x نيز صورت ميگيرد.



    [J#.NET]
    [C++.NET]
    پروتوتایپ تابع ABC که شامل اشاره گری به يک عدد است.

    int ABC(long *py);
    ABC(&VAR);
    پروتوتایپ تابع ABC که شامل ارجاعی به يک عدد است.

    int ABC(long &y);
    ABC(VAR);
    [C#.NET]
    همنچنين توجه داشته باشيد که متد #C ميتواند مانند ++C شامل اشاره گر باشد. برای مثال اين متد:

    void ABC(ref int x)
    {
    ...
    }
    ABC(ref i);

    مديريت استثنائات ساخت يافته

    [VB.NET]
    Try
    If x = 0 Then
    Throw New Exception("x equals zero")
    Else
    Throw New Exception("x does not equal zero")
    End If
    Catch err As System.Exception
    MsgBox("Error: " & Err.Description)
    Finally
    MsgBox("Executing finally block.")
    End Try

    [J#.NET]
    try{
    if (x == 0)
    throw new Exception ("x equals zero");
    else
    throw new Exception ("x does not equal zero");
    }
    catch (Exception err){
    if (err.getMessage() == "x equals zero")
    System.out.println(err.getMessage());
    //Handle Error Here
    }

    [C++.NET]
    __try{
    if (x == 0)
    throw new Exception ("x equals zero");
    else
    throw new Exception ("x does not equal zero");
    }
    __catch(Exception e)
    {
    Console.WriteLine("Caught Exception");
    }
    __finally
    {
    Console.WriteLine("Executing finally block");
    }

    [C#.NET]
    // try-catch-finally
    try
    {
    if (x == 0)
    throw new System.Exception ("x equals zero");
    else
    throw new System.Exception ("x does not equal zero");
    }
    catch (System.Exception err)
    {
    System.Console.WriteLine(err.Message);
    }
    finally
    {
    System.Console.WriteLine("executing finally block");
    }

    رهاسازی ارجاعات اشياء

    [VB.NET]
    o = Nothing

    [J#.NET]
    stringVar = null;

    [C++.NET]

    [C#.NET]
    o = null;


    منبع مقاله : [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    Last edited by Saeid.Online; 28-08-2006 at 21:33.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •