|
Les Classes Génériques |
|
|
Introduction |
|
Comme est habituellement fait, vous imaginer pour vouloir passer différents types de valeurs à de diverses méthodes de classe pour accomplir principalement le même but. Vous pouvez être tentés à avez surchargé une méthode dans diverses versions comme suit : using System;
public class Exercise
{
// Display the value of an integer
public void Show(int value)
{
Console.WriteLine(value);
}
// Display the value of a double-precesion value
public void Show(double value)
{
Console.WriteLine(value);
}
// Display the value of a character
public void Show(char value)
{
Console.WriteLine(value);
}
}
|
public class Program
{
static int Main()
{
Exercise exo = new Exercise();
// Call the version of the method that displays an integer
exo.Show(246);
// Call the version of the method that displays a character
exo.Show('G');
// Call the version of the method that displays a decimal
exo.Show(355.65);
return 0;
}
}
Ceci produirait : 246 G 355.65 Press any key to continue . . . Nous avons passé une valeur constante directement à la méthode quand nous l'avons appelée. Se rappeler que vous peut également d'abord déclarer une variable, lui assigner une valeur, et puis passer cette variable à la méthode. Voici les exemples : public class Program
{
static int Main()
{
Exercise exo = new Exercise();
// Call the version of the method that displays an integer
int Value1 = 246;
exo.Show(Value1);
// Call the version of the method that displays a character
char Value2 = 'G';
exo.Show(Value2);
// Call the version of the method that displays a decimal
double Value3 = 355.65;
exo.Show(Value3);
return 0;
}
}
Bien que ceci soit basé sur le concept de la méthode surchargeant, une autre manière que vous pouvez résoudre ce type de problème est de créer une méthode qui ne connaît pas le type de valeur qui lui serait passé mais la méthode est équipée pour traiter la valeur convenablement. Basé sur le programme ci-dessus, vous pouvez créer une méthode qui prend un argument et il montre sa valeur. Pour faire ceci, lorsque vous définissez la méthode, vous l'avez seulement faite savoir qu'elle recevrait un argument mais vous n'indiquez pas le type de valeur qu'il traitera. Une telle méthode désigné sous le nom générique.
Une méthode générique est une méthode qui peut traiter une valeur dont le type est connu seulement quand la variable est accédée. Pour créer une méthode générique, du bon côté du nom de la méthode, dactylographier l'opérateur de <>. À l'intérieur de de cet opérateur, écrire une lettre ou un nom, qui désigné sous le nom du type de paramètre. Voici un exemple : public class Exercise
{
public void Show<TypeOfValue>()
{
}
}
Une des manières que vous pouvez employer le type de paramètre est de passer un argument à la méthode. Vous faites ceci en précédant le nom de l'argument avec le type de paramètre. Voici un exemple : public class Exercise
{
public void Show<TypeOfValue>(TypeOfValue value)
{
}
}
Dans le corps de la méthode, vous pouvez traiter l'argument pendant que vous voyez l'ajustement. À un minimum, et basé sur notre programme plus tôt, vous pouvez simplement montrer la valeur en la passant à la méthode de Console.WriteLine (). Voici un exemple : public class Exercise
{
public void Show<TypeOfValue>(TypeOfValue value)
{
Console.WriteLine(value);
}
}
Par la tradition, la plupart des programmeurs et la plupart des documents emploient la lettre T pour le type de paramètre.
Comme cité précédemment, une des particularités d'une méthode générique est que, lorsqu'elle est définie, la méthode ne connaît pas le type du paramètre. Ceci signifie que, en appelant la méthode, vous devez s'assurer vous clairement indiquer le type de valeur qui sera traité. Vous pouvez faire ceci en passant directement (une constante de) le type de valeur que la méthode traitera. Voici les différents exemples d'appeler notre méthode d'exposition () : using System;
public class Exercise
{
public void Show<TypeOfValue>(TypeOfValue value)
{
Console.WriteLine(value);
}
}
public class Program
{
static int Main()
{
Exercise exo = new Exercise();
// Call the version of the function that displays an integer
int Value1 = 246;
exo.Show(Value1);
// Call the version of the function that displays a character
char Value2 = 'G';
exo.Show(Value2);
// Call the version of the function that displays a decimal
double Value3 = 355.65;
exo.Show(Value3);
return 0;
}
}
Une fois conformé et exécuté, ce programme produirait : 246 G 355.65 Press any key to continue . . . Comme alternative, vous pouvez dactylographier le nom de la méthode, suivi des équerres. À l'intérieur de des parenthèses, écrire le type de données de la valeur qui sera traitée. Après les équerres, ouvrir les parenthèses et, à l'intérieur de de elles, dactylographier la valeur constante qui sera traitée. Voici les exemples : using System;
public class Exercise
{
public void Show<TypeOfValue>(TypeOfValue value)
{
Console.WriteLine(value);
}
}
public class Program
{
static int Main()
{
Exercise exo = new Exercise();
// Call the version of the function that displays an integer
int Value1 = 246;
exo.Show<int>(Value1);
// Call the version of the function that displays a character
char Value2 = 'G';
exo.Show<char>(Value2);
// Call the version of the function that displays a decimal
double Value3 = 355.65;
exo.Show<double>(Value3);
return 0;
}
}
Vous pouvez également déclarer la valeur comme constante avant de la passer à la méthode.
|
|
|
||
| Précédent | Copyright © 2007, Yevol | Suivant |
|
|
||