Différence entre out et ref en C #

Différence clé - out vs ref en C #
 

C # est un langage de programmation moderne développé par Microsoft. Il est utilisé pour développer diverses applications pour le bureau, le Web et le mobile. Les fonctions ou méthodes sont un concept en programmation. Ce groupe d'instructions utilisé pour effectuer une tâche spécifique est appelé fonction ou méthode. Dans les programmes C #, l'exécution commence par main (). C'est un exemple de méthode. Lors de l'appel d'une méthode, les données sont transmises à la méthode ou reçues de la méthode. La méthode qui appelle la nouvelle méthode est appelée appeler la méthode. La nouvelle méthode est connue sous le nom de méthode appelée. Pour gérer les valeurs transmises et récupérer le résultat, C # utilise des paramètres. Ce sont des paramètres valorisés, des paramètres de sortie et des paramètres de référence. Les paramètres de valeur sont utilisés pour transmettre des paramètres à la méthode par valeur. Les paramètres de référence sont utilisés pour transmettre des paramètres à la méthode par référence. Les paramètres de sortie sont utilisés pour renvoyer le résultat de la méthode. En C #, le mot clé out est utilisé pour les paramètres de sortie et le mot clé ref est utilisé pour référencer les paramètres. le différence clé entre out et ref en C # est-ce, out est un mot clé utilisé pour faire référence à un paramètre de sortie utilisé pour transmettre les résultats de la méthode appelée à la méthode appelante, tandis que ref est un mot clé pour faire référence à un paramètre de référence utilisé pour transmettre les données de méthode appelante à la méthode appelée et recevoir les données de la méthode appelée à la méthode d'appel.

CONTENU

1. Vue d'ensemble et différence clé
2. Ce qui est en C #
3. Qu'est-ce que ref en C #
4. Similitudes entre out et ref en C #
5. Comparaison côte à côte - out vs ref en C # sous forme tabulaire
6. Résumé

Ce qui est en C #?

La syntaxe d'une fonction ou d'une méthode est la suivante. Une méthode comporte un certain nombre d'éléments, tels que le nom de la méthode, la liste des paramètres, le type de retour et le spécificateur d'accès..

(liste de paramètres)

// instructions à exécuter

Chaque méthode a une méthode unique pour effectuer l'appel de fonction. Les instructions exécutables sont entre accolades. Le type de retour explique si la fonction renvoie une valeur ou non. Lorsqu'il n'y a pas de type de retour, cela s'appelle un vide. Le spécificateur d'accès est utilisé pour spécifier l'accessibilité de la méthode dans l'application. Les paramètres sont utilisés pour recevoir ou transmettre des données à la méthode. Il peut aussi y avoir des méthodes sans paramètres. Les paramètres peuvent être des paramètres de valeur, des paramètres de sortie ou des paramètres de référence.

Les paramètres de sortie sont utilisés pour renvoyer les résultats à la méthode d'appel. Pour cela, le paramètre doit être déclaré avec le mot clé out. Le paramètre de sortie ne crée pas de nouvel emplacement de stockage. Généralement, une méthode retourne une valeur. Mais en C #, il est possible de renvoyer deux valeurs d'une fonction à l'aide de paramètres de sortie. Voir le programme ci-dessous.

espace de noms application1

            public class Calculation

affichage vide public (out int a, out int b)

int valeur = 5;

a = valeur;

b = valeur;

a = a * a;

b = b * b;

public static void main (String [] args)

int valeur1 = 10, valeur2 = 20;

Calcul cal = new Calculation ();

cal.display (valeur out1, valeur out2);

Console.ReadLine ();

La fonction d'affichage est appelée depuis la méthode principale. La valeur1 et la valeur deux ont 10 et 20, mais elles ne sont pas prises en compte dans la méthode. La valeur de a est 25 et la valeur de b est également 25 dans la fonction. Par conséquent, ces valeurs sont renvoyées. Lors de l'impression des valeurs 1 et 2, les valeurs 10 et 20 ne seront pas spécifiées. Les valeurs 25 et 25 seront imprimées. À l'aide du mot clé out, plusieurs valeurs peuvent être renvoyées à l'aide de la méthode..

Qu'est-ce que ref en C #?

Lors du passage de paramètres par valeur, un nouvel emplacement de stockage est créé pour chaque paramètre. Les paramètres réels envoyés par le programme principal ne changent pas. Au lieu de cela, ces valeurs sont copiées dans un emplacement distinct. Ces nouvelles copies de variables sont appelées paramètres formels. Référez-vous le code ci-dessous.

espace de noms application1

public class Calculation

Échange public vide (int x, int y)

int temp;

temp = x;

x = y;

y = temp;

public static void main (String [] args)

Calcul cal = new Calculation ();

int p = 2;

int q = 3;

cal.swap (p, q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Selon le programme ci-dessus, la classe Calculation dispose d'une méthode swap (). Dans le programme principal, un objet de type Calcul est créé. Il existe deux valeurs telles que p et q. La variable p a la valeur 2 et la variable q a la valeur 3. Ces deux valeurs sont transmises à la méthode swap. Dans la méthode d'échange, la valeur 2 est copiée dans la variable x et la valeur 3 est copiée dans la variable y. A l'aide de la variable temp, les valeurs sont échangées. De retour dans le programme principal, en imprimant p et q, les valeurs ne sont pas permutées. La valeur p est toujours 2 et la valeur q est 3. Même dans la méthode d'échange, les valeurs sont échangées mais ne sont pas reflétées dans le programme principal..

Contrairement aux valeurs ci-dessus, il est possible de transmettre des paramètres par référence. Une variable de référence est une référence à l'emplacement de la mémoire. Il n'y a pas de nouvel emplacement mémoire créé. Les changements de méthode reflétés dans le programme principal. En C #, les paramètres de référence sont référencés à l'aide du mot clé ref. Voir le programme ci-dessous.

espace de noms application1

public class Calculation

Échange public vide (ref int x, ref int y)

int temp;

temp = x;

x = y;

y = temp;

public static void main (String [] args)

Calcul cal = new Calculation ();

int p = 2;

int q = 3;

cal.swap (réf p, ref q);

Console.WriteLine (p);

Console.WriteLine (q);

Console.ReadLine ();

Selon le programme ci-dessus, la classe Calculation utilise la méthode d'échange. Dans le programme principal, un objet de type Calcul est créé. Il y a deux variables telles que p et q. La variable p a la valeur 2 et la variable q a la valeur 3. Plutôt que de transmettre des valeurs, les références aux emplacements mémoire de p et q sont transmises à la méthode. Ces variables de référence sont référencées à l'aide de réf. Dans la méthode d'échange, plutôt que de copier les valeurs dans un nouvel emplacement, les modifications sont apportées aux paramètres réels. Lors de l’impression des valeurs p et q du programme principal, les valeurs permutées sont indiquées. Maintenant, la valeur p est 3 et la valeur q est 2.

Quelle est la similitude entre out et ref en C #?

  • Les deux sont des mots-clés utilisés pour faire référence aux paramètres d'une méthode.

Quelle est la différence entre out et ref en C #?

out vs ref en C #

La sortie est un mot-clé en C # utilisé pour désigner un paramètre de sortie. Il est utilisé pour transmettre les résultats d'une méthode appelée à l'appel de la méthode.. La référence est un mot-clé en C # utilisé pour désigner un paramètre de référence. Il est utilisé pour transmettre des données de la méthode appelante à la méthode appelée et pour renvoyer des données de la méthode appelée à la méthode appelante..
La fonctionnalité
Lorsque vous utilisez le mot clé out, les données peuvent être transmises de la méthode appelante à la méthode appelée. Mais ces données sont ignorées. Il est utilisé pour transmettre le résultat à la méthode appelante à partir de la méthode appelée. Lors de l'utilisation du mot-clé ref, les données sont transmises de la méthode d'appel à la méthode appelée et les données manipulées sont renvoyées à la méthode d'appel..
Transmission de données
Lors de l'utilisation du mot clé out, les données sont transmises d'une manière appelée méthode appelée à la méthode appelante.. Lorsque vous utilisez le mot clé ref, les données sont transmises de deux manières: de la méthode appelante à la méthode appelée et de la méthode appelée à la méthode appelante..

Résumé - out vs ref en C # 

Lors de l'appel d'une méthode, il peut être nécessaire de transmettre les valeurs à la méthode et de récupérer les résultats de la méthode. C # a différents paramètres pour y parvenir. Les paramètres de valeur sont utilisés pour transmettre des paramètres à la méthode par valeur. Les paramètres de référence sont utilisés pour transmettre des paramètres à la méthode par référence. Les paramètres de sortie sont utilisés pour renvoyer le résultat de la méthode. En C #, le mot clé out est utilisé pour les paramètres de sortie et le mot clé ref est utilisé pour référencer les paramètres. La différence entre out et ref en C # est que out est un mot clé utilisé pour référencer un paramètre de sortie utilisé pour transmettre les résultats d'une méthode appelée à la méthode appelante, tandis que ref est un mot clé pour désigner un paramètre de référence utilisé pour transmettre des données. méthode d'appel à méthode appelée et pour recevoir les données de la méthode appelée à méthode d'appel.

Téléchargez le PDF de out vs ref en C #

Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne, conformément à la note de citation. Veuillez télécharger la version PDF ici: Différence entre Out et Ref en C #

Référence:

1.tutorialspoint.com. "Méthodes C #."  Le point. Disponible ici 
2.dnfvideo. Paramètres C # Out vs paramètres REF, vidéos de préparation aux entretiens .NET, 28 septembre 2015. Disponible ici  

Courtoisie d'image:

1.'C sharp'By Mothmolevna - Travail personnel, (Domaine public) via Wikimedia Commons