السلام عليكم ورحمة الله وبركاتة
هل المتغير String نوعه Reference في جميع اللغات ام فقط في منصة الدوت نت
ولماذا صار Reference هل هي غلطه
وهل هو عبارة عن مصفوفة من char
وشكرا جزيلآ لكم
فمثلا لو عندك نص اسمه "ABCD" وقمت بإنشاء متغيرين من النوع سترينغ ووضعت فيهم نفس القيمة السابقة فإنه لا يخزنها مرتين
اذا كان قصدك هكذا
Dim n1 as string = "Ahmed"
Dim n2 as string = "Ahmed"
اعتقد انه لن تأشر لنفس القيمة في manged heap هل هذا صحيح؟ عكس هذا
Dim n1 as string = "Ahmed"
Dim n2 as string = n1
هل تحويل القيم الى نصوص ToString تقوم بتخزينها بالذاكرة؟
-
بما ان المتغير النصي بدون قيمة لن يتم حفظه في الذاكرة فكيف هذا الكود يعمل
Dim b As String
'
'Some Code's
'
b = "ahmed"
عندما يمر عليه المترجم هل سيتم تعريفه في الذاكرة ام فقط سيخزن اسم المتغير المرجعي في stack
-
اسف فانا شخص معقد والانجليزية ضعيفه
ما يجري في manged heap يحتاج مراجعة لمعرفة الأمر بدقة
بالنسبة لل ToString هو وظيفة تعيد قيمة والقيمة تستقر في المتغير الذي تضعه فيه أو أنها تزيل كل شيء فور الخروج من النطاق scope أو مع أول عملية تنظيف للذاكرة .
عندما يمر عليه المترجم هل سيتم تعريفه في الذاكرة ام فقط سيخزن اسم المتغير المرجعي في stack
بصراحة لم أهتم لهذا الأمر كثيرا لأنه لم أصل لبناء تطبيق يتطلب هذا المستوى من التعمق
فإدارة العملية من قبل الدوت نت تكفي لمعظم التطبيقات غير الكبيرة.
التعليقات