Différence entre les variables de type valeur et référence

Différence entre les variables de valeur et de type de référence

Introduction

Bonjour! J’espère que vous avez dû passer par nos plus intéressants
Questions d’entretien de base .net,
mvc,
ASP.Net
et
articles c#. Nous allons maintenant voir la différence entre les variables de type valeur et de type référence. Tous les types de données dans .RAPPORTER
sont gérées par des variables de type valeur ou de type référence.

Une variable de type valeur possède les données dans sa zone de mémoire et une variable de type référence porte un pointeur vers une autre zone de mémoire qui porte les données réelles. Les variables de type valeur sont stockées dans la pile tandis que les variables de type référence sont stockées dans le tas.

Variable Type de valeur :

Une variable de type valeur stocke son contenu dans la mémoire allouée sur la pile. Souvent, lorsque nous créons une variable de type valeur, un espace unique en mémoire est alloué pour obtenir la valeur stockée et cette variable porte certainement une valeur. Si vous affectez cette variable à une autre variable, la valeur sera copiée directement et les deux variables commenceront à fonctionner indépendamment. Les types de données, les structures et les énumérations précédemment déclarés sont également considérés comme des types de valeur et fonctionnent selon la même approche. De plus, les variables de type Valeur peuvent être produites au moment de la compilation et peuvent être stockées dans la mémoire de la pile. Le ramasse-miettes ne peut pas accéder à cette pile à cause de cette variable.

entier x=21 ;

par exemple

Ici la valeur 21 est stockée dans le pile de mémoire Région.

Variable Type de référence

Les variables de type référence sont utilisées par une référence qui possède une référence ou une adresse vers un autre objet mais pas le même objet lui-même. Étant donné que les variables de type référence décrivent les détails d’emplacement de cette variable plutôt que les mêmes données elles-mêmes, l’affectation d’une variable de référence spécifique à une autre ne duplique pas les données. Au lieu de cela, il génère une deuxième copie de la variable de référence, qui se rapporte au même emplacement particulier du tas spécifique que la valeur réelle. Les variables de type référence sont stockées dans diverses zones de la mémoire appelées tas. Cela signifie que lorsqu’une variable de type référence n’est plus utilisée, elle peut être sous-titrée pour la récupération de place.

Des exemples de variables de type référence sont
Des classestableaux,
ObjetsInterfaces, Indexeurs, etc.

par exemple

int iTableau[] =nouveau entier[31];

Dans l’exemple ci-dessus avec code, l’espace souhaité pour les 31 entiers qui composent le tableau est alloué sur le tas.

Empiler et empiler

Heap est utilisé pour l’allocation de mémoire dynamique et Stack est utilisé pour l’allocation de mémoire statique, mais les deux sont stockés dans la RAM du PC.

Discutons d’autres variables de type valeur et de type référence.

Classe et structure

Classer
est considéré comme une variable de passage par référence et Struct est considéré comme une variable de passage par copie, il indique que Class est une variable de catégorie de référence et son objet est construit sur la mémoire tas alors que la structure est une catégorie de valeur variable et son objet est construit sur la mémoire de la pile.

Type de données dynamique

La
type de données dynamique
concept apporte de nouvelles fonctionnalités à DO# 4. Cependant, Dynamic Type indique que vous pourrez stocker n’importe quel type de valeur ou de données dans la variable dynamique car la vérification du type de données pour les catégories dynamiques de variables se produit au moment de l’exécution.

Conclusion

J’espère que l’article ci-dessus sur la différenciation du type de valeur et du type de référence pourra aider les étudiants de première année ou les débutants dans le domaine du développement. Ces variables constituent une partie importante de l’interaction avec la base de données pour les utilisateurs finaux.

Leave a Reply