
لینکدونی آسان دانلود : مطالب جالب و خواندنی از سراسر وب
:: هيات محبان فاطمه زهرا - رزمندگان غرب تهران (1270)
:: پايگاه رسمي هيئت رزمندگان شميرانات (1172)
:: پخش زنده مداحی از شبکه رادیو تلویزیونی آسمان (1328)
:: تصاویری بسیار زیبا از عکسبرداری سه بعدی! (1700)
:: تصاویری دیدنی از ماه مصنوعی! (1828)
:: عکس: پرش با اسکی (1498)
:: عکس: کتابخانههای زیبای دنیا (1536)
:: داستان لوگوهای شرکتهای معروف فیلمسازی هالیوود (1513)
:: موتور جستجوي آنلاين آيكن (1590)
:: ترجمه متون به زبان فارسی (2398)
:: قبل از ازدواج، توقعاتتان را ارزیابی کنید (1387)
:: کاهش خطر مرگ با تغییر دادن ۵ عادت مضر (2269)
:: کمک های اولیه دهان و دندان در خانه (1826)
:: مهندسی پلهای بزرگراه ها (1231)
:: عکس: پرش با اسکی (2032)
:: گران ترین اتومبیل جهان (2009)
:: بهترین های این هفته؛ شماره ی سه (1937)
:: دانلود پک کامل تقویم سال ۱۳۸۸ هجری شمسی (2260)
:: دانلود نوحه با صداي مداحان اهل بیت (ع) (2580)
» ادامه - آرشيو لينکدوني ... » دريافت كد لينكدوني
چگونه از يك تابع بيش از يك خروجي دريافت كنيم.
ظاهرا به نظر مي رسد كه توابع فقط مي توانند يك 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
تمامي حقوق مطالب، تصاوير و طرح قالب براي آسان دانلود محفوظ است، نقل و استفاده از آنها در سايت ها و نشريات تنها با ذکر منبع مجاز ميباشد

