مشكلة في الجافا و C#

اعمل كمطور مواقع بتقنية ASP.net واخيرا انتقلت من فيجوال بيسك دوت نت الى C#.

سؤالي هو لماذا لايمكن اجراء العمليات الحسابية على الانواع Byte - short سواء في الجافا او C#، نعم اعرف حل المشكلة لكني لا اعرف السبب العلمي لذلك.

على سبيل المثال تم تعريف 3 متغيرات من نوع short ولكن عند محاولة جمع قيمة المتغير x مع المتغير y واسناد الناتج الى المتغير z يظهر الخطا التالي:

;short x = 1, y = 1

short z = x + y; // Compile-time error

واذا كان لايتم استخدام المتغيرات من النوع Byte و Short فما هي استخداماتهم !!

وشكرا لكم


حسب التوثيق عندما تقوم بعمليا ضرب طرح وجمع على short ، byte يتم تحويلهم بشكل تلقائي الى int وبتالي الناتج من العملية هو int وليس short لذلك يجب عليك تحويل الناتج الي int عن طريق casting

شكرا لك صديقي اجابة موفقة، نعم هذا ماكنت ارغب في الحصول عليه.

معلومة اضافية عندما تحدثت مع مبرمجين اجانب وقلت لهم ما الهدف من وجود byte و short اذا كان لا يمكننا القيام بالعمليات الحسابية التي تعتبر اساس علم البرمجة، ذكروا لي انه يتم استخدام الـ byte من اجب معالجة الصور والتعامل مع I/O

شكرا لك صديقي على اجاباتك