السلام عليكم ورحمة الله وبركاته
بما أنني مبتعد منذ فترة طويلة عن البرمجة فقد حاولت عمل نفس البرنامج بلغتي الفيجول بايزك والانتقال لسي شارب وبما أنني نادرا ما أتعامل بالسي شارب لذا واجهت صعوبة حتى حصلت على النتيجة المطلوبة
الكود بلغة الفيجول بايزك
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
