|
Rangées et méthodes |
|
|
Le principal but d'utiliser une rangée est l'utilisation des diverses pseudo-variables groupées sous un nom. Toujours, une rangée est principalement une variable. En tant que tels, elle peut être passée à une méthode et elle peut être retournée d'une méthode. Comme une variable régulière, une rangée peut être passée comme argument. Pour faire ceci, dans les parenthèses d'une méthode, fournissez le type de données, les crochets vides, et le nom de l'argument. Voici un exemple: using System;
namespace ConsoleApplication1
{
public static class Program
{
static void Main()
{
}
static void DisplayNumber(Double[] n)
{
}
}
}
Quand une rangée a été passée à une méthode, elle peut être utilisée dans le corps de la méthode pendant que n'importe quelle rangée peut être, en observant les règles des variables de rangée. Par exemple, vous pouvez afficher ses valeurs. La manière la plus simple d'utiliser une rangée est d'qfficher les valeurs de ses membres. Ceci pourrait être fait comme suit: using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
}
static void DisplayNumber(Double[] n)
{
for (int i = 0; i < 5; i++)
Console.WriteLine("Number {0}: {1}", i, n[i]);
}
}
}
Pour appeler une méthode qui prend une rangée comme argument, dactylographiez simplement le nom de la rangée dans les parenthèses de la méthode appelée. Voici un exemple: using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Double[] number = new Double[5];
number[0] = 12.44;
number[1] = 525.38;
number[2] = 6.28;
number[3] = 2448.32;
number[4] = 632.04;
DisplayNumber(number);
}
static void DisplayNumber(Double[] n)
{
for (int i = 0; i < 5; i++)
Console.WriteLine("Number {0}: {1}", i, n[i]);
}
}
}
Ceci produirait : Number 0: 12.44 Number 1: 525.38 Number 2: 6.28 Number 3: 2448.32 Number 4: 632.04 Quand une rangée est passée comme argument à une méthode, la rangée est passée par la référence. Ceci signifie que, si la méthode fait n'importe quel changement à la rangée, le changement serait gardé quand la méthode sortira. Vous pouvez utiliser cette caractéristique pour initialiser une rangée d'une méthode. Voici un exemple : using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Double[] number = new Double[5];
InitializeList(number);
DisplayNumber(number);
}
static void InitializeList(Double[] nbr)
{
nbr[0] = 12.44;
nbr[1] = 525.38;
nbr[2] = 6.28;
nbr[3] = 2448.32;
nbr[4] = 632.04;
// The array has changed
}
static void DisplayNumber(Double[] n)
{
for (int i = 0; i < 5; i++)
Console.WriteLine("Number {0}: {1}", i, n[i]);
}
}
}
Notez que la méthode InitializeList() reçoit une rangée non-initialisée mais la retourne avec de nouvelles valeurs. Pour imposer le concept de passer une variable par la référence, vous pouvez également accompagner un argument de rangée du mot-clé ref, en définissant la méthode et en l'appelant. Voici un exemple: using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Double[] number = new Double[5];
InitializeList(ref number);
DisplayNumber(ref number);
}
static void InitializeList(ref Double[] nbr)
{
nbr[0] = 12.44;
nbr[1] = 525.38;
nbr[2] = 6.28;
nbr[3] = 2448.32;
nbr[4] = 632.04;
}
static void DisplayNumber(ref Double[] n)
{
for (int i = 0; i < 5; i++)
Console.WriteLine("Number {0}: {1}", i, n[i]);
}
}
}
Comme une variable normale, une rangée peut être retournée d'une méthode. Ceci signifie que la méthode renverrait une variable qui porte diverses valeurs. Quand vous déclarez ou définissez la méthode, vous devez indiquer son type de données. Quand la méthode finit, elle renvoie une rangée représentée par le nom de sa variable. Pour déclarer une méthode qui renvoie une rangée, du côté gauche du nom de la méthode, fournisez le type de valeur dans lequel on fera retourner la rangée, suivi des crochets vides. Voici un exemple : using System;
namespace ConsoleApplication1
{
public static class Program
{
static void Main()
{
Double[] number = new Double[5];
DisplayNumber(number);
}
static Double[] InitializeList()
{
}
static void DisplayNumber(Double[] n)
{
for (int i = 0; i < 5; i++)
Console.WriteLine("Number {0}: {1}", i, n[i]);
}
}
}
Rappelez vous qu'une méthode doit toujours retourner une valeur appropriée dépendant la façon dont elle a été déclarée. Dans ce cas-ci, si elle était spécifié comme devant retourner une rangée, assurez vous qu'elle retourne une rangée et pas une variable régulière. Une manière de faire ceci est de déclarer et initialiser probablement une variable de rangée locale. Après avoir utilisé la rangée locale, vous retournez seulement son nom (sans crochets). Voici un exemple: using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Double[] number = new Double[5];
DisplayNumber(number);
Console.ReadLine();
}
static Double[] InitializeList()
{
Double[] nbr = new Double[5];
nbr[0] = 12.44;
nbr[1] = 525.38;
nbr[2] = 6.28;
nbr[3] = 2448.32;
nbr[4] = 632.04;
return nbr;
}
static void DisplayNumber(Double[] n)
{
for (int i = 0; i < 5; i++)
Console.WriteLine("Number {0}: {1}", i, n[i]);
}
}
}
Quand une méthode renvoie une rangée, cette méthode peut être assignée à une rangée déclarée localement quand vous voulez l'utiliser. Rappelez vous d'initialiser une variable avec une telle méthode seulement si la variable est une rangée. Si vous initialisez une variable de rangée avec une méthode qui ne retourne pas une rangée, vous recevriez une erreur. Voici un exemple: #region Using directives
using System;
using System.Collections.Generic;
using System.Text;
#endregion
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Double[] number = new Double[5];
number = InitializeList();
DisplayNumber(number);
Console.ReadLine();
}
static Double[] InitializeList()
{
Double[] nbr = new Double[5];
nbr[0] = 12.44;
nbr[1] = 525.38;
nbr[2] = 6.28;
nbr[3] = 2448.32;
nbr[4] = 632.04;
return nbr;
}
static void DisplayNumber(Double[] n)
{
Console.WriteLine("List of Numbers");
for (int i = 0; i < 5; i++)
Console.WriteLine("Number {0}: {1}", i, n[i]);
}
}
}
|
|
|
||
| Précédent | Copyright © 2007 Yevol | Suivant |
|
|
||