Maison > développement back-end > C++ > C # Comparaison des chaînes: quand dois-je utiliser `==` vs `equals ()`?

C # Comparaison des chaînes: quand dois-je utiliser `==` vs `equals ()`?

Mary-Kate Olsen
Libérer: 2025-02-01 19:16:13
original
665 Les gens l'ont consulté

C# String Comparison: When Should I Use `==` vs. `Equals()`?

C # Chaîne de caractères Problèmes sexuels égaux:

et Comparez == Equals() C # propose deux opérateurs de chaîne de comparaison:

et

. Bien qu'ils semblent pouvoir échanger, ils montrent des comportements uniques et peuvent conduire à des résultats inattendus. Explorons ce problème de langue à travers une scène spécifique. == Equals() Dans une application Silverlight, une condition compare deux chaînes:

Étrangement,
<code class="language-csharp">if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
    // 执行代码
}

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
    // 执行代码
}</code>
Copier après la connexion
Comparez False, et

Rappelez-vous vrai. Pourquoi y a-t-il une telle différence? == Equals() La réponse réside dans la mise en œuvre sous-jacente de ces opérateurs. Lorsqu'il est utilisé avec une expression d'objet,

sera évalué comme

. Cette méthode compare la référence d'objet, pas le contenu == System.Object.ReferenceEquals. Dans ce cas, les deux chaînes sont stockées dans différentes positions de mémoire, donc revient à false. ReferenceEquals En revanche, est une méthode virtuelle qui peut être réécrite par type dérivé. Pour les types de chaînes, la version réécrite du contenu

réel

, renvoyant ainsi True. Equals Par conséquent, pour la comparaison de la chaîne de chaîne, il est recommandé d'utiliser , il est plus intuitif et il effectue la comparaison basée sur le contenu.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal