Maison >développement back-end >Tutoriel C#.Net >Introduction détaillée à la chaîne de cas particuliers des types référence en C#

Introduction détaillée à la chaîne de cas particuliers des types référence en C#

黄舟
黄舟original
2017-09-18 11:02:201740parcourir

Le type string est souvent utilisé lors de la programmation en C#, c'est aussi un type référence, mais il n'est pas utilisé partout comme référence. C'est un cas particulier, je vais les lister un par un pour votre propre commodité :

1) Affectation directe de la chaîne  : La chaîne elle-même est un type de référence, et vous devez utiliser la nouvelle méthode objet comme instance. Cependant, pour la commodité de tous, Microsoft peut définir directement. chaîner les variables et attribuer des valeurs, par exemple : string a = "My Chinese Heart" ; cela simplifie simplement nos opérations

2) Attribuer une chaîne à une autre variable de chaîne : Référence normale ; type Les deux variables de référence pointeront vers la même adresse, mais lorsqu'une variable chaîne est affectée à une autre variable chaîne, deux espaces d'adressage différents sont créés, par exemple :

 string a = "12345"; string b = a;

Le code ci-dessus Ce sont deux différents références d'adresse. Ils attribuent simplement le contenu de la chaîne de a à b. Le contenu de a et b est le même

3) Assignations multiples de la même chaîne : Selon la pensée générale ; , l'attribution d'une valeur à une variable chaîne modifie uniquement son contenu et ne change pas son adresse. Cependant, les chaînes sont plutôt étranges. Lorsque la même variable chaîne reçoit à nouveau une valeur, elle réalloue l'espace mémoire et en crée une nouvelle. , puis attribuez l'adresse

à la variable de chaîne d'origine. Par exemple :

  string a= "123";  a = "456"

Lorsqu'une valeur de "456" est attribuée à a pour la deuxième fois, il crée une nouvelle mémoire. espace, puis attribuez l'adresse mémoire nouvellement créée à la variable a. La mémoire "123" précédente est supprimée et attend le garbage collection.

4) Passer une chaîne en paramètre de fonction : Lorsqu'une chaîne est passée en paramètre d'une fonction, c'est un type référence La référence d'adresse de la variable doit être passée, et plus tard dans la fonction La modification de ce paramètre changera la valeur de la chaîne, mais laissez-moi vous dire qu'elle transmet uniquement une copie de la chaîne au corps de la fonction

La modification du caractère dans la fonction ne le fait pas. affecter le transfert. La valeur du paramètre, bien sûr, la transmission de la chaîne peut également être utilisée comme type de référence. Elle peut être ajoutée principalement pour le REF. La capture d'écran peut être utilisée :

5) Comparaison de la comparaison de chaînes :Lorsque des chaînes sont utilisées comme références, les deux types de référence sont comparés pour l'égalité, seules les adresses des deux références sont comparées pour l'égalité (sauf si vous surchargez la fonction Equal), mais lorsque nous comparons des chaînes, nous constatons qu'en fait ce qu'elles comparent, c'est le contenu de la chaîne, pas l'adresse de la référence

Il s'agit d'une référence à la classe de chaîne qui. surcharge la fonction égal, qui fait référence à la comparaison du contenu des caractères. À ce stade, les résultats de == et égal sont en fait les mêmes ;

6) Résidence en mémoire des chaînes : Lorsque nous créons des variables avec le même contenu de chaîne, ces variables de chaîne pointent en fait vers la même adresse mémoire, c'est un peu comme l'inline en C++

S'il y a d'autres points particuliers, veuillez donner des conseils d'experts ; .Si vous avez des opinions différentes, veuillez laisser un message. Tout le monde peut apprendre les uns des autres, afin que les novices grandissent étape par étape, hehe ! ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn