تفاوت value type ها و reference type ها در C#
سلام دوستان
کسی میتونه تعریف شیوا و قابل فهمی از value type ها و reference type iها در سی شارپ بگه. ؟
تعریف های کلیشه ای را زیاد شنیدم ولی خیلی قابل درک برام نیست.
2 پاسخ
ببیند در برنامه نویسی شیوه هایی مختلفی برای ارسال پارامتر ها و ارگومان ها به توابع به کار میرن .
این دو تایی که الان شما گفتید دو تا از 5 نوع شیوه ایی هستش که میشه روی داده ایی که داره میره به سمت یه تابعی بررسی کرد .
ببینید یه زمانی شما می خواید از داخل خود برنامه مثلا یه عددی رو به سمت یه تابعی بفرستید و نمی خواد که تابع پس از پردازش اون عدد رو تعییر بده . حالا به دلایل مختلف یا مثلا اینکه می خواید یه چیز حدید رو به دست بیارید و یه جا ذخیره کنید ولی روی اون پارامتری که فرستادید تاثیر نداشته باشه و با این که اون مقداری که شما به تابع فرستادید دست نخورده باقی بمونه . در این صورت باید به شیوه Call by Value عمل کنید .
یه زمانی میشه که شما می خواید یه متغیری رو به ازای اینکه یه تغییر توش به وجود اومد توی هر جای دیگه ایی که هم اون متغیر بودش تغییر کنه . یعنی مثلا اول مثلا شما توحافظه ایی که داری مثلا توی خونه 10223 عددی دارید که این عدد به محض هر تغییر باید Update بشه . پس به این روش میگن Call by Refrence
حالا بستگی به طراحی برنامه و این که شما بخواید متغیر هایی رو که دارید رو تو همه جا یا توی یه سری جاهای خاص تغییر بدید فرق می کنه که از جه روشی استفاده بشه .
دوست عزیز همه چی داخل این لینک توضیح داده شده : لینک