PDA

View Full Version : کاربرد کلمات ref و out ؟



hdv212
سه شنبه 10 بهمن 1385, 01:18 صبح
سلام بچه ها .
کسی میدونه کاربرد کلمات ref و out چیه ؟؟ اگه با ذکر مثال بگید دیگه خیلی شرمنده کردید .. مرسی ..

ARA
سه شنبه 10 بهمن 1385, 08:07 صبح
ref همون by refrence یعنی هر چی تو تابع تغییر بدی رو متغیر اصلی عمال میشه

out رو کامل یادم نیست ولی فکر کنم :
out هم مثل همونه ولی اگه بخای چند تا برگشتی از تابع داشته باشی منغیر رو با این کلمه معرفی میکنی که هردر زیر برنامه هر تغییری روی آن بدی رو متغیر اصلی انجام میشه
این متغیر هنگام ارسال به تابع میتونه مقدار دهی نشده باشه
البته اگه اشتباه نکنم،
دوستان اگه غلطه کمک کنید

SabaSabouhi
سه شنبه 10 بهمن 1385, 08:36 صبح
با سلام
ref رو دوستمون توضیح دادن. out هم مانند همون ref هست با این تفاوت که رسماً یک پارامتر خروجى هست. یعنى هنگام صدا زدن رویه به اون مقدار نمى‌دیم و Initialize شدن اون پارامتر داخل رویه باید انجام بشه.

صبا صبوحى

hdv212
سه شنبه 10 بهمن 1385, 20:19 عصر
خب اگه همینطوری توی یه تابع مقدار یک متغیر رو عوض کنیم یا بهش مقدار بدیم،مگه روی متغیر اصلی اعمال نمیشه ؟؟ پس چکاریه که از ref استفاده کنیم ؟

reza_rad
چهارشنبه 11 بهمن 1385, 07:20 صبح
خب اگه همینطوری توی یه تابع مقدار یک متغیر رو عوض کنیم یا بهش مقدار بدیم،مگه روی متغیر اصلی اعمال نمیشه ؟؟ پس چکاریه که از ref استفاده کنیم ؟

نه! نمیشه

شما به چند طریق می تونید به یک function متد ... پارامتر پاس کنید. از جمله pass by reference , pass by value و ...
بعضی ها مثل pass by value مقدار متغیر اصلی رو تغییر نمی دن
و بعضی ها مثل pass by reference مقدار اصلی رو عوض می کنند.
توضیحات بیشتر:

http://www.yoda.arachsys.com/csharp/parameters.html

SabaSabouhi
چهارشنبه 11 بهمن 1385, 17:34 عصر
با سلام
در C استاندارد تنها روش پاس کردن پارامتر به رویه ها Call by value بود که اگر لازم بود مقدار یک متغیر پس از تغییر در داخل رویه در مقدار اصلی هم تاثیر بگذاره از آدرس اون استفاده میکردن.
به زبان ++C روش Call by reference هم اضافه شد که معادل ref در #C عمل میکرد.
و اکنون در #C میتوانیم از out استفاده کنیم که امکانی جدید و بسیار مفید و به درد بخور هست.

صبا صبوحی

hdv212
چهارشنبه 11 بهمن 1385, 21:21 عصر
با تشکر از همتون

kiani_behzad
جمعه 13 بهمن 1385, 23:39 عصر
سلام عزیزم اگه سی بلدی Ref مثل همون اشاره گر می مونه تو سی و out هم فرقش اینه که حتما" باید تو خوده تابع مقدار دهی بشه اما ref باید قبل از اینکه به عنوان پارامتر پاسش بدیم حتما" باید مقداردهی شده باشه.