استخدام ref keyword في الـ #C

استخدام المعرف “ref” في لغة #C هو لتمرير الـ Reference/Address للمتغير في الذاكرة، بدلًا من تمرير قيمتة، وهذا يسمح بتغيير/تعديل قيمة متغير (بعيد).

افتراضيًا، عند تمرير متغير إلى دالة معينة ، ما يتم تمريره فقط هو قيمته Value :-

مثال :-

عند تشغيله :-

قمنا، بتعريف متغير (i) من نوع integer ( )،  ثم طبعنا قيمته

( )، وبعدها قمنا باستدعاء الدالة changeInt ومررنا المتغير لها، هذه الدالة تقوم بتغيير قيمة i إلى 5، ومن ثم نطبع المتغير مره أخرى بعد تغيير قيمته، لنرى ماذا تغير ؟

عند تشغييل الكود لاحظنا أن قيمة (i) لم تتغير، وتم طباعة قيمته السابقة ! ( 1 و 1 )،  والسبب هو أن المتغيرات يتم تمرير قيمتها فقط، إلى الدالة ولا يتم تمرير المتغير نفسه وعنوانه.


نلاحظ المثال التالي باستخدام المعرف ( ref )

وعند تشغيله :-

استطعنا هنا أن نغير قيمة المتغير ( i ) البعيد وعند طباعته حصلنا على ( 1 و 5 )، من خلال الدالة،  لأنه تم تمريره كـ Reference، تم تمرير عنوان المتغير وليست قيمته فقط، وعندما نمرر عنوان متغير بعيد، فإننا نتمكن من تغيير قيمته من دالة أخرى.

وهذا ما يسمى بـ   SharedByValue vs SharedByReference

LevelDB – قواعد بيانات بمبدأ Key-Value في تخزين البيانات

Brotli – أحد أفضل خوارزميات ضغط البيانات

تطبيق Science Journal لحساب بيئتك، مثل الضوء، الصوت والحركة

Model لـ TensorFlow: لإكتشاف التهديد، الإهانة والكراهية في الجملة (برمجيًا)

أمثلة على لغات عالية، متوسطة، منخفضة المستوى

(قواعد بيانات مونقو – MongoDB) تغيير قيمة 31 ألف عنصر في (0.718) ثانية

(شرح) مفهوم انحياز البقاء في مثال