تبليغات
آرشيو موضوعي
لینک به ما
با قرار دادن این بنر در سایت خود از ما حمایت کنید

و یا به صورت متن
لينك دوستان
اطلاعات
تعداد مطالب : 283
ايجاد صفحه : 18.06 ثانيه
تاسيس : 28/03/85
به روز شده : ۲۰ /۸ /۱۳۸۷
آمار سايت
تعداد افراد آنلاین : 230
بازديد امروز : 16394
بازديد ديروز : 60429
بازديد كل : 23426520
امكانات
  افزودن به علاقه منديها   ارسال ايميل   RSS 2.0   آمار وب سايت
ارسال براي دوستان
لینک این مطلب را برای دوست خود ارسال کنید.
ايميل گيرنده:

ايميل فرستنده:

پيام شما (اختياري):

powered by Google
" ارزانترين و زيباترين آرايش صورت لبخند است "

لینکدونی آسان دانلود : مطالب جالب و خواندنی از سراسر وب

:: کسانی که خود را جراحی کردند (204)
:: هيات محبان فاطمه زهرا - رزمندگان غرب تهران (1270)
:: پايگاه رسمي هيئت رزمندگان شميرانات (1172)
:: پخش زنده مداحی از شبکه رادیو تلویزیونی آسمان (1328)
:: تصاویری بسیار زیبا از عکسبرداری سه بعدی! (1700)
:: تصاویری دیدنی از ماه مصنوعی! (1828)
:: عکس: پرش با اسکی (1498)
:: عکس: کتابخانه‌های زیبای دنیا (1536)
:: داستان لوگوهای شرکت‌های معروف فیلمسازی هالیوود (1513)
:: موتور جستجوي آنلاين آيكن (1590)
:: ترجمه متون به زبان فارسی (2398)
:: قبل از ازدواج، توقعاتتان را ارزیابی کنید (1387)
:: کاهش خطر مرگ با تغییر دادن ۵ عادت مضر (2269)
:: کمک های اولیه دهان و دندان در خانه (1826)
:: مهندسی پلهای بزرگراه ها (1231)
:: عکس: پرش با اسکی (2032)
:: گران ترین اتومبیل جهان (2009)
:: بهترین های این هفته؛ شماره ی سه (1937)
:: دانلود پک کامل تقویم سال ۱۳۸۸ هجری شمسی (2260)
:: دانلود نوحه با صداي مداحان اهل بیت (ع) (2580)
» ادامه - آرشيو لينکدوني ...                                                                   » دريافت كد لينكدوني
Jan 07 , 2009
چهارشنبه 18 دي 87
مديريت وب سايتمدير تبليغات  ظهر شما بخير
موضوع : #C  تعداد بازديد : 801

چگونه از يك تابع بيش از يك خروجي دريافت كنيم.


ظاهرا به نظر مي رسد كه توابع فقط مي توانند يك return داشته باشند و بلافاصله پس از فراخواني return كار تابع پايان يافته است. در سي شارپ دو كلمه ي كليدي به نام هاي ref و out اضافه شده اند كه اين امر را ساده تر مي كنند.


استفاده از كلمه ي كليدي out :


از out در تعريف تابع قبل از معرفي نوع آرگومان ورودي استفاده مي كنيم . در اين حالت بجاي اينكه به اين آرگومان ، آرگومان ورودي بگوييم ، مي توان آنرا آرگومان خروجي ناميد. تا يك مثال را در اين زمينه با هم مرور نكنيم اين مورد مفهوم نخواهد بود :


مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex15 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :


using System;


namespace ex15
{
class Class1
{


public static int TestOut(out char i)
{
i = 'b';
return -1;
}


[STAThread]
static void Main(string[] args)
{
char i; // variable need not be initialized
Console.WriteLine(TestOut(out i));
Console.WriteLine(i);
Console.ReadLine();


}
}
}


 

توضيحاتي در مورد كد فوق :
1- در تابع TestOut آرگومان i از با كلمه ي كليدي out مشخص شده است. يعني اينكه درون تابع هر گونه تغييري روي i انجام شود ، خارج از تابع قابل دسترسي است.
2- توابعي كه داراي آرگومانهايي تعريف شده با كلمه ي كليدي out هستند نيز مي توانند از return هم استفاده كنند. همانند مثال فوق.


استفاده از كلمه ي كليدي ref :


اين كلمه ي كليدي نيز دقيقا همانند out عمل مي كند و نحوه ي تعريف و استفاده از آن نيز مشابه است با اين تفاوت كه آرگوماني كه به اين نوع توابع فرستاده مي شود بايد مقدار دهي اوليه شده باشد.


مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex16 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :


using System;


namespace ex16
{
class Class1
{
public static void FillArray(ref int[] arr)
{
// Create the array on demand:
if (arr == null)
arr = new int[10];
// Otherwise fill the array:
arr[0] = 123;
arr[4] = 1024;
}


[STAThread]
static void Main(string[] args)
{
// Initialize the array:
int[] myArray = {1,2,3,4,5};


// Pass the array using ref:
FillArray(ref myArray);


// Display the updated array:
Console.WriteLine("Array elements are:");
for (int i = 0; i < myArray.Length; i++)
Console.WriteLine(myArray[i]);


Console.ReadLine();
}
}
}


توضيحاتي در مورد كد فوق :
1- همانطور كه ملاحظه مي كنيد در اينجا هنگام استفاده از تابع FillArray بايد آرگوماني را كه مي خواهيم به آن پاس كنيم مقدار دهي اوليه كنيم.
2- پس مي توان نتيجه گرفت آرگومانهايي كه با out تعريف مي شوند به صورت خالص خروجي هستند و نيازي به مقدار دهي اوليه هنگام استفاده از آنها وجود ندارد. از ref هنگامي استفاده مي كنيم كه بخواهيم روي متغير موجود و مقدار دهي شده ي خارج از تابع ، درون تابع عملياتي صورت گيرد و سپس همان متغير دستكاري شده ، عودت داده شود.


تعريف تابعي با تعداد آرگومانهاي نامعلوم :


گاهي از اوقات نياز است تا تابعي تعريف كنيم كه تعداد آرگومانهاي آن متغير باشند .براي اين منظور از كلمه ي كليدي params استفاده مي شود.
دونكته در اينجا حائز اهميت است:
1- در هر تابعي تنها مي توان يكبار از params استفاده كرد.
2- پس از بكار بردن params ديگر نمي توان هيچ آرگوماني را تعريف كرد.


يكي از مثالهايي كه در اين زمينه مي توان ارائه داد استفاده از آرايه ها به عنوان آرگومان ورودي است. در اين حالت يا مي توان يك آرايه را به صورت كامل به تابع معرفي كرد و يا تنها نام آنرا به تابع پاس كرد. مثال زير را ملاحظه كنيد :


مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex17 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :


using System;


namespace ex17
{
class Class1
{
public static void UseParams(params int[] list)
{
for ( int i = 0 ; i < list.Length ; i++ )
Console.WriteLine(list[i]);
Console.WriteLine();
}


[STAThread]
static void Main(string[] args)
{
UseParams(1, 2, 3);


int[] myarray = new int[3] {10,11,12};
UseParams(myarray);


Console.ReadLine();


}
}
}


توضيحاتي در مورد كد فوق :


1- در تابع main به دو صورت از تابع UseParams ما استفاده شده است. يا اينكه خيلي ساده هر تعداد آرگومان را مي توان به تابع فرستاد و يا اينكه در ادامه آرايه ايي رسما تعريف و سپس به تابع فرستاده شود.
2- نحوه ي تعريف و استفاده از آرايه ها به صورت آرگومان ورودي را نيز مي توان در مثال فوق آموخت

نويسنده : مهرشاد تاريخ : پنجشنبه ۴ بهمنماه ۱۳۸۶ ساعت : ۵:۱۳:۲۰ بعدازظهر | نظرات | لينك خراب
مطالب مرتبط
نرم افزار - موبايل - كاريكاتور - آموزش - اخبار آي تي - فيلم -  لينكدوني -  تبليغات -  ارسال مطلب

Statistics | Atom | RSS 2.0 | RSD | E-Mail | Advertise
Copyright © 2005-2009 AsanDownload™ Design: Mahdi Hosting : Poshtiban
تمامي حقوق مطالب، تصاوير و طرح قالب براي آسان دانلود محفوظ است، نقل و استفاده از آنها در سايت ها و نشريات تنها با ذکر منبع مجاز ميباشد

تبليغات
مطالب گذشته
ده مطلب تصادفي
آرشيو ماهانه
عضويت و ارسال مطلب
مطالب خود را جهت انتشار در آسان دانلود ارسال نمائید

téléchargement - trasferimento - 下载 - ダウンロード다운로드 - скачать - transferencia directa - μεταφορτώστε - download

دانلود , دانلود نرم افزار , آسان دانلود , دانلود آسان , دانلود , دانولد , داونلود , دانلد , داونلد , کیجن , کرک , سریال , نرم افزار , ویندوز ویستا ، مایکروسافت ویندوز ویستا ، نسخه جدید ویندوز ویستا ، نسخه نهایی ویندوز ویستا ، ویندوز ویستا یولتیمیت ، ویندوز ویستا با کرک ، کرک ویندوز ویستا ، خرید ویندوز ویستا ، فیلم 300 ، دانلود فیلم 300 ، فتوشاپ 10 ، فتوشاپ cs3 ، نورتون 2007 ، دانلود نرم افزار ، دانلود نرم افزار جدید ، دانلود ، آنتی ویروس ، انتی ویروس ، ویندوز ویستا بدون کرک ، ویستا ویندوز ، windows vista , vista activation , windows vista , crack , download , free download , photoshop cs3 10, norton 2007, software , téléchargement, trasferimento, 下载, ダウンロード, 다운로드, скачать, transferencia directa, μεταφορτώστε, nhkg,n


دانلود - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
موبايل
كاريكاتور
آموزش و مقالات
اخبار آي تي
فيلم
لينكدوني