الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

يرجى توضيح فرق التصرف و الطريقة الصحيحة للتعامل بين VB و C#

مغلق
بدأه محمد سامر أبو سلو في 13 سبتمبر 2013 · 8 رد · 1,063 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

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

 

الكود بلغة الفيجول بايزك

        Dim result As Integer = 0
        Dim TMR As String

        For i = 0 To Me.txtImeiNumber.Text.Length - 2 Step 2
            result += Val(Me.txtImeiNumber.Text(i))
        Next

 

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

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

            int result = 0;            string TMR = null;            int i = 0;            int j = 0;            string k;            for (i = 0; i <= this.txtImeiNumber.Text.Length - 2; i += 2)            {                k = Convert.ToString(this.txtImeiNumber.Text);                result +=Convert.ToInt32(k);            }

 

لماذا في السي شارب اضطررت للتحويل مرتين بينما في الفيجول بايزك أخذت القيمة التي أريد مباشرة وهل من طريقة أفضل لتحقيق نفس النتيجة

 

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

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#2

هل جربت

result + = int33(this.txtimeinumber.text); // could raise exption

−1
#3

ما نفعت نفس خطأ جلب القيمة

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#4

السلام عليكم ..

  1. لا يوجد مقابل مباشر للدالة  Val  في الــ #C  اللهم إلا الدالة  Microsoft.VisualBasic.Conversion.Val نفسها , و لكن يشترط إضافة الــ reference  المسمى Microsoft.VisualBasic للمشروع .
  2. تذكر أن 
    txtImeiNumber.Text

     هو من نوع char  .

  3. لو استعرضنا الكود المصدري للكلاس Convert  موجود في : 
    ftp://ftp.lab.unb.br/pub/os/DotGNU/current/pnetlib/runtime/System/Convert.cs

     لوجدنا أن هناك Overloading  للدالة ToInt32 كمايلي :  

    public static int ToInt32(char value)
    			{
    				return unchecked((int)value);
    			}

     أي عندما يكون الوسيط الممرر لها هو من نوع char  تقوم بإعادة القيمة المقابلة له الآسكي حيث  '1'  يقابل 49 ,  و '2'  يقابل 50 و '3' يقابل 51  و هكذا ..

    أما : 

    public static int ToInt32(String value)
    			{
    				return Int32.Parse(value);
    			}

     فإذا كان الوسيط الممرر لها هو من نوع String  يتم عمل Parsing  له كما هو موضح .

     

تم تعديل هذه المشاركة بواسطة حسام الشامي في 14 سبتمبر 2013 في 16:45

2

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

شكرا لك وجزاك الله خيرا

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#6
محمد سامر أبو سلو كتب:

شكرا لك وجزاك الله خيرا

و إياكم أخ محمد .

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#7

تعطيك الناتج 51 بدلا من 3 لان 51 هي القيمة الفعلية الموجودة في التكست بوكس حسب الاسكي كود وهذا افضل من القيمة الظاهرية

اليك جميع القيم

post-257301-0-31291600-1379213161_thumb.

−1
#8
zaraki_kenpache كتب:

تعطيك الناتج 51 بدلا من 3 لان 51 هي القيمة الفعلية الموجودة في التكست بوكس حسب الاسكي كود وهذا افضل من القيمة الظاهرية

اليك جميع القيم

attachicon.gifascii-codes-table.gif

 

كلامك غير صحيح

لأن اعطائي قيمة آسكي للرقم المدخل من قبل مستخدم البرنامج لا يعطي نتائج صحيحة حسب طريقة حساب البرنامج والهدف منه

تم تعديل هذه المشاركة بواسطة محمد سامر أبو سلو في 17 سبتمبر 2013 في 15:38

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

محمد سامر أبو سلو

#9
محمد سامر أبو سلو كتب:

كلامك غير صحيح

لأن اعطائي قيمة آسكي للرقم المدخل من قبل مستخدم البرنامج لا يعطي نتائج صحيحة حسب طريقة حساب البرنامج والهدف منه

 

 

يا اخي لا تنخدع بلملظاهر  قديما كانت للغة Vb قبل الدوت نيت كانت ابنة الويندوس، صحيح انها كانت سهلة ولكنها لا تساوي شى من دون  والدها وكانت تأخذ كل الاساليب من والدها كيفية القرأة والكتابة والطبع، اما الان تستطيع ان تبرمج لاي انظمة التشغيل وصدقني المضاهر لا تفيد الا في vb ولكي تكون متقاربة جعلوها تقرا القيمة الظاهرية اما الان يمكنك التعامل مع اي بيانات حتى وان كانت غير ادارية Unmanaged ،على كل معك الحق الظاهرية اسهل للمستخدم ولكنك مبرمج وتستطيع اظهار ما تريد للمستخدم  

تم تعديل هذه المشاركة بواسطة zaraki_kenpache في 18 سبتمبر 2013 في 02:19

−1

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…