PDA

View Full Version : چرا Ref و Out رو باید استفاده کرد ؟؟



cs_mz88
یک شنبه 22 مرداد 1391, 16:29 عصر
سلام دوستان میشه یه کمکی بکنید.
نمیدونم کجا باید این ref و out رو استفاده کنم.اگه میشه آموزش بدبد لطفا با مثال باشه

مهرداد صفا
یک شنبه 22 مرداد 1391, 17:28 عصر
سلام دوستان میشه یه کمکی بکنید.
نمیدونم کجا باید این ref و out رو استفاده کنم.اگه میشه آموزش بدبد لطفا با مثال باشه
سلام
از ref و out برای ارسال نشانه گر متغیر به عنوان پارامتر به تابع به جای ارسال مقدار آن استفاده میشود. این موضوع زمانی کاربرد دارد که شما میخواهید مقدار متغیری را که در تابع دریافت کردی اید را تغییر بدهید. مثلا تابعی مینویسیم که سه عدد را گرفته مقدار هر سه را دو برابر میکند.

private void doubler(ref int n1, ref int n2, ref int n3)
{
n1 *= 2;
n2 *= 2;
n3 *= 3;
}

اگر شما این تابع را اجرا کنید و سه متغیر به آن ارسال کنید میبینید که بعد از اجرا مقدار هر سه دوبرابر شده است.
تفاوت ref و out در این است که شما باید متغیری ه به عنوان ref به تابع ارسال میکنید مقدار دهی کرده باشید اما در out متغیری که مقدار دهی نشده باشد هم میتوان ارسال کرد.
گاهی هم از ref و out برای کاهش مقدار حافظه مصرفی توسط برنامه و افزایش سرعت برنامه استفاده میشود.

tooraj_azizi_1035
یک شنبه 22 مرداد 1391, 18:02 عصر
http://barnamenevis.org/showthread.php?350729-%D8%AD%D8%A8%D8%AB-%DA%A9%D9%86%DB%8C%D9%85-%D8%B1%D8%A7%D8%AC%D8%B9-%D8%A8%D9%87-ref-%D9%88-out&highlight=out+ref

cs_mz88
دوشنبه 23 مرداد 1391, 00:10 صبح
یعنی ما نمیتونیم بدونه اینکه ref و out استفاده کنیم مقدار متغیر و تغیر داد

mousa1992
دوشنبه 23 مرداد 1391, 00:20 صبح
یعنی ما نمیتونیم بدونه اینکه ref و out استفاده کنیم مقدار متغیر و تغیر داد
در حالت عادی یک کپی از پارامتر ها برای تابع ارسال می شود و تغییرات رو ی ان ها اعمال میشود و میتونی مقادیر جدید رو برگشت بدی و مقادیر رو اپدیت کنی
ولی با استفاده از ref , out مستقیما به داده ها دسترسی داری و با هر تغییر داده های اصلی تغییر میکنن