תקנו אותי אם אני טועה
רפרנס למשתנה הוא למעשה alias לאותו משתנה (אני חושב שככה זה לפחות בC#)
כל פעולה שמתבצעת על רפרנס מתבצעת על המשתנה המקורי
ולכן
כאשר רוצים להעביר משתנה כלשהו לפונקציה כלשהי, ושהיא לא תחזיר משתנה אחר כלשהו אלא תבצע את הפעולות שלה על אותו המשתנה (למעשה על אותם תאים בזכרון), מעבירים את המשתנה כרפרנס
הסינטקס נראה ככה
void myFunc(ref int someNum)
והקריאה לפונקציה גם צריכה להכיל את מילת המפתח רפרנס
מילת המפתח out מבצעת את בדיוק את אותה הפעולה, רק שאיתה אפשר להעביר משתנים שעוד לא אתחלו אותם (בC# חובה לאתחל משתנה לפני שמשתמשים בו)
