Maison développement back-end Tutoriel C#.Net .NET Framework - Explication détaillée indiquant si la chaîne est un type valeur ou référence

.NET Framework - Explication détaillée indiquant si la chaîne est un type valeur ou référence

Mar 18, 2017 pm 01:37 PM

Regardez d'abord le code :

           int a = 1;           
           int b = a;
           a = 2;           
           bool valOrRef = b == 2  ;//false;
Copier après la connexion

Vous pouvez voir que le type int est un type valeur, car b ne change pas après a.

Regardez à nouveau le code suivant :

            string str11 = "qa";            
            string str22 = str11;
            str11 = "qaz";            
            bool valOrRef2 = str22 == "qaz"; //false
Copier après la connexion

Le résultat est également faux, donc la chaîne est également un type valeur.

Regardez à nouveau le code suivant :

            string str1 = "qaz";            
            string str2 = "qaz";            
            bool refequ = object.ReferenceEquals(str1, str2); //true
Copier après la connexion

refequ est égal à true Si la chaîne est vraiment un type valeur, alors comment refequ peut-il être vrai, car veuillez regarder le code suivant. :

            int a = 1;            
            int b = 1;            
            bool refequ2 = object.ReferenceEquals(a, b);//false
Copier après la connexion

int est un type valeur, c'est certain, deux intvariables sont déclarées.

C'est une contradiction. Comment l'expliquer ? La chaîne ressemble à un type valeur, mais elle ressemble aussi à un type référence.

Microsoft : la chaîne est de type référence. Alors, comment expliquer à quoi ressemble le type valeur ?

N'oubliez pas 2 points :

1) string objet , si les valeurs sont les mêmes, leurs référence adresses sont le même.
2) objets chaîne, si les valeurs ne sont pas égales, leurs adresses de référence ne sont pas égales.

Analyse du code ci-dessus :

            string str11 = "qa";//str11指向了内存addressA,数据为qa;
            string str22 = str11;//str22也指向内存addressA
            str11 = "qaz";//str11新指向了内存addressB,数据为qaz
            bool valOrRef2 = str22 == "qaz"; //false
Copier après la connexion

Résumé :

L'une des caractéristiques les plus importantes de la chaîne est qu'elle a stabilité constante. Variabilité  : Une fois que nous avons créé une chaîne et lui avons alloué un espace mémoire continu sur le tas géré, nous ne pourrons en aucun cas modifier la chaîne pour la rendre plus longue, plus courte ou la changer. le format. Toutes les chaînes renvoyées par diverses opérations sur cette chaîne sont en réalité une autre chaîne recréée, qui elle-même ne produira aucun changement.

Post-scriptum :
Quelle est l'efficacité de la chaîne ?

L'objet chaîne est appelé un objet immuable (lecture seule) car une fois l'objet créé, sa valeur ne peut plus être modifiée. Parfois, il semble qu'elle ait été modifiée. En fait, la chaîne a été spécialement traitée. Chaque fois que la valeur est modifiée, un nouvel objet chaîne sera créé. La variable pointera vers ce nouvel objet, tandis que celle d'origine pointe toujours vers ce nouvel objet. l'objet d'origine, donc il ne changera pas. C'est aussi la raison pour laquelle la chaîne est inefficace.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Convertissez les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Convertissez les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Jul 24, 2023 pm 07:55 PM

Convertir les types de données de base en chaînes à l'aide de la fonction String.valueOf() de Java Dans le développement Java, lorsque nous devons convertir les types de données de base en chaînes, une méthode courante consiste à utiliser la fonction valueOf() de la classe String. Cette fonction peut accepter les paramètres des types de données de base et renvoyer la représentation sous forme de chaîne correspondante. Dans cet article, nous explorerons comment utiliser la fonction String.valueOf() pour les conversions de types de données de base et fournirons quelques exemples de code pour

Comment convertir un tableau de caractères en chaîne Comment convertir un tableau de caractères en chaîne Jun 09, 2023 am 10:04 AM

Méthode de conversion d'un tableau de caractères en chaîne : cela peut être réalisé par affectation. Utilisez la syntaxe {char a[]=" abc d\0efg ";string s=a;} pour laisser le tableau de caractères attribuer directement une valeur à la chaîne et l'exécuter. le code pour terminer la conversion.

Utilisez la fonction String.replace() de Java pour remplacer des caractères (chaînes) dans une chaîne Utilisez la fonction String.replace() de Java pour remplacer des caractères (chaînes) dans une chaîne Jul 25, 2023 pm 05:16 PM

Remplacez les caractères (chaînes) dans une chaîne à l'aide de la fonction String.replace() de Java. En Java, les chaînes sont des objets immuables, ce qui signifie qu'une fois qu'un objet chaîne est créé, sa valeur ne peut pas être modifiée. Cependant, vous pouvez rencontrer des situations dans lesquelles vous devez remplacer certains caractères ou chaînes dans une chaîne. À l'heure actuelle, nous pouvons utiliser la méthode replace() dans la classe String de Java pour implémenter le remplacement de chaîne. La méthode replace() de la classe String a deux types :

Explication détaillée de 2 mots en chaîne, yyds Explication détaillée de 2 mots en chaîne, yyds Aug 24, 2023 pm 03:56 PM

Bonjour à tous, aujourd'hui je vais partager avec vous les connaissances de base de Java : String. Inutile de dire l'importance de la classe String, on peut dire que c'est la classe la plus utilisée dans notre développement back-end, il est donc nécessaire d'en parler.

Compétences en matière de conversion d'octets, de runes et de types de chaînes Golang Compétences en matière de conversion d'octets, de runes et de types de chaînes Golang May 17, 2023 am 08:21 AM

Dans la programmation Golang, les types octet, rune et chaîne sont des types de données très basiques et courants. Ils jouent un rôle important dans le traitement des opérations de données telles que les chaînes et les flux de fichiers. Lors de l'exécution de ces opérations de données, nous devons généralement les convertir les unes aux autres, ce qui nécessite la maîtrise de certaines compétences de conversion. Cet article présentera les techniques de conversion de types d'octets, de runes et de chaînes des fonctions Golang, dans le but d'aider les lecteurs à mieux comprendre ces types de données et à être capables de les appliquer habilement dans la pratique de la programmation.

Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne Jul 25, 2023 am 09:09 AM

Utilisez la fonction String.length() de Java pour obtenir la longueur d'une chaîne. En programmation Java, la chaîne est un type de données très courant. Nous avons souvent besoin d'obtenir la longueur d'une chaîne, c'est-à-dire le nombre de caractères qu'elle contient. En Java, nous pouvons utiliser la fonction length() de la classe String pour obtenir la longueur d'une chaîne. Voici un exemple de code simple : publicclassStringLengthExample{publ

Comment utiliser la classe String de Java Comment utiliser la classe String de Java Apr 19, 2023 pm 01:19 PM

1. Comprendre String1. String dans le JDK Tout d'abord, jetons un coup d'œil au code source de la classe String dans le JDK. Il implémente de nombreuses interfaces. Vous pouvez voir que la classe String est modifiée par final. être hérité et il n'y a pas de sous-classe de la classe String, de sorte que toutes les personnes utilisant JDK utilisent la même classe String. Si String peut être hérité, tout le monde peut étendre String. Tout le monde utilise différentes versions de String. la même méthode montre des résultats différents, ce qui rend impossible le développement du code. L'héritage et le remplacement de méthode apportent non seulement de la flexibilité, mais entraînent également un comportement différent de nombreuses sous-classes.

Comment utiliser la méthode split dans Java String Comment utiliser la méthode split dans Java String May 02, 2023 am 09:37 AM

La méthode split dans String utilise la méthode split() de String pour diviser la chaîne en fonction des caractères ou des chaînes entrants et renvoyer le tableau divisé. 1. Utilisation générale Lors de l'utilisation de caractères généraux, tels que @ ou, comme séparateurs : Stringaddress="Shanghai@Shanghai City@Minhang District@Wuzhong Road";String[]splitAddr=address.split("@");System .out. println(splitAddr[0]+splitAddr[1]+splitAddr[2]+splitAddr[3

See all articles