by value, by refrence
מה החוקיות ב C# לגבי העברות by-value ו by-reffrence? כלומר, ב cpp למשל הייתי יכול לעשות משהו כזה:
מה החוקיות ב C# לגבי העברות by-value ו by-reffrence? כלומר, ב cpp למשל הייתי יכול לעשות משהו כזה:
int a = 10; int b = a&;
ואז b לא היה מקבל את הערך של a, אלא את הכתובת שלו בזכרון. כך שלמעשה ל a ו b יש את אותה כתובת בזכרון _ברגע שנשה אחד, השני ישתנה בהתאמה) המצב זהה לעבודה עם פוינטרים. עכשיו ב c# אין אפשרות לציין אם אני רוצה להעביר את הכתובת או את הערך, אז רציתי לדעת מה החוקיות של זה. למשל אם אני אעשה דבר כזה:int a = 10; int b = a;
אז תהיה כאן העברה by-value ויהיו לי שני אובייקטים עם כתובות שונות בגלל שמדובר ב value-type? ואם אני אעשה דבר כזה:Hashtable hash = new Hashtable(); Hashtable hash2 = hash;
אז תהיה לי העברה של כתובת הזכרון בלבד? (בגלל שמדובר ב ref type) ואם אני אעשה ל hash2 new, אז במקרה הזה יהיה מדובר בשני אובייקטים שונים? או שאני חייב להשתמש ב Clone בשביל זה? אם תוכלו להאיר את עיניי בנושא, אני אשמח תודה