موضوع: # C
نمایش پست تنها

مقدمه اي بر سي شارپ : قسمت نهم
قدیمی 12-02-2008, 01:16 PM   #10 (permalink)

B@RBOD

کاربر آخر فروم باز

 B@RBOD آواتار ها

 
تاریخ عضویت: Oct 2008
سن: 22
نوشته ها: 3,263
سپاس ها: 21
سپاس شده 408 در 349 پست
حالت من:
درجه: 44 [♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥♥ Bé-Yêu ♥]
سابقه: 542 / 1084
سحر و جادو: 1087 / 6010
تجربه: 37%

Rep Power: 5 B@RBOD is on a distinguished road
Post مقدمه اي بر سي شارپ : قسمت نهم

[SIZE=2][FONT=Arial][B]مبحث overloading :[/B]

گاهي از اوقات لازم است تا نگارش هاي مختلفي از يك تابع داشته باشيم. براي مثال تعريف سه تابع با يك نام اما با آرگومانهاي مختلف. به اين نوع توابع و يا متدها اصطلاحا Overloaded Methods مي گويند . ( فكر كنم آنرا سربارگذاري توابع ترجمه كرده اند! ) براي مثال :

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]void myMethod(int p1);
void myMethod(int p1, int p2);
void myMethod(int p1, string s1);

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex18 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]using System;

namespace ex18
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
writeIT();

writeIT(12);

Console.ReadLine();
}

public static void writeIT()
{
Console.WriteLine(" writeIT() Ver." );
}

public static void writeIT(int intI)
{
Console.WriteLine(" writeIT(intI) Ver. = " + intI );
}


}
}

[/FONT]
[/SIZE][SIZE=2][FONT=Arial][B]توضيحاتي در مورد كد فوق :
[/B]
1- نحوه ي تعريف دو تابع با يك نام را ملاحظه مي نماييد. اينكار در زبان سي ممنوع است!
2- كامپايلر به صورت هوشمند بر اساس نوع و تعداد آرگومانهاي ورودي ، ورژن مناسب را انتخاب و اجرا مي كند.

نمونه ي ضعيفي از اين بحث در وي بي 6 به صورت تعريف توابعي با پارامترهاي Optional وجود داشت .

[/FONT][FONT=Arial][B]مباحث تكميلي آرايه ها (آرايه هاي چند بعدي):
[/B]
آرايه هاي معمولي (يك بعدي) را مي توان يك رديف با تعدادي خانه خالي آماده ي پر شدن در نظر گرفت. آرايه ي دوبعدي را مي توان مانند يك جدول تشكليل شده از رديف ها و ستون ها در نظر گرفت و الي آخر...
سي شارپ دو نوع آرايه ي چند بعدي را پشتيباني مي كند : rectangular and jagged
در يك آرايه ي rectangular هر رديف ، طولش با رديف بعدي يكي است. آرايه ي jagged در حقيقت آرايه ايي از آرايه ها است ، بنابراين هر كدام از آنها مي تواند طول مختلفي داشته باشد.

تعريف يك آرايه ي دوبعدي به صورت زير است :

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]type [,] array-name

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]مثال : يك برنامه ي سي شارپ جديد console را در VS.NET باز كنيد و نام آنرا درابتدا ex19 انتخاب نماييد. سپس كد زير را درون آن بنويسيد :

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]using System;

namespace ex19
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
const int rows = 4;
const int columns = 3;
// declare a 4x3 integer array
int[,] rectangularArray = new int[rows, columns];
// populate the array
for (int i = 0;i < rows;i++)
{
for (int j = 0;j<COLUMNS;J++)
{
rectangularArray[i,j] = i+j;
}
}
// report the contents of the array
for (int i = 0;i < rows;i++)
{
for (int j = 0;j<COLUMNS;J++)
{
Console.WriteLine("rectangularArray[{0},{1}] = {2}",
i,j,rectangularArray[i,j]);
}
}

Console.ReadLine();
}
}
}
[/FONT]
[/SIZE]
[SIZE=2][FONT=Arial][B]توضيحاتي در مورد كد فوق :[/B]
1- نحوه ي تعريف ، مقدار دهي اوليه و استفاده از آرايه هاي دو بعدي را در مثال فوق ملاحظه مي نماييد.
2- در يك آرايه ي دوبعدي محل قرار گيري رديف ها و ستون ها براي مثال به صورت زير است :

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]new int[rows, columns]-

[/FONT]
[/SIZE][SIZE=2][FONT=Arial][B]استفاده از آرايه هاي چند بعدي :[/B]

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

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]using System;

namespace ex20
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
const int rows = 4;
const int columns = 3;
// imply a 4x3 array
int[,] rectangularArray =
{
{0,1,2},
{3,4,5},
{6,7,8},
{9,10,11}
};
for (int i = 0;i < rows;i++)
{
for (int j = 0;j<COLUMNS;J++)
{
Console.WriteLine("rectangularArray[{0},{1}] = {2}",
i,j,rectangularArray[i,j]);
}
}
}
}
}

[/FONT]
[/SIZE][SIZE=2][FONT=Arial]توضيحاتي در مورد كد فوق :
1- در حقيقت مثال فوق تعريف آرايه ايي از آرايه ها بود.
2- چون مقدار دهي اوليه به صورت واضحي انجام شده نيازي به ذكر ابعاد آرايه به صورت صحيح وجود نداشت
[/FONT]
[/SIZE]
  پاسخ با نقل قول
 
chat room senatorha
chat room senatorha