"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > C# Comparação de string: quando string.equals () e == equivalente?

C# Comparação de string: quando string.equals () e == equivalente?

Postado em 2025-03-12
Navegar:556

String Comparison in C#: When Are `String.Equals()` and `==` Interchangeable?

c# confunda na comparação da string: o string.equals () método e o == o operador intercambiável?

Em C#, as comparações de string às vezes produzem resultados inesperados. Uma pergunta comum é se o método string.equals () e o == operador de sinal igual se comporta exatamente o mesmo.

considere o seguinte snippet de código:

string s = "Category";
TreeViewItem tvi = new TreeViewItem();
tvi.Header = "Category";

Console.WriteLine(s == tvi.Header); // false
Console.WriteLine(s.Equals(tvi.Header)); // true
Console.WriteLine(s == tvi.Header.ToString()); // true
S

S e tvi.header tvi.header ] tvi, o == operador Returns = (]. Isso levanta a questão: por que esses dois métodos de comparação produzem resultados diferentes? Diferenças -chave entre string.equals () e

==

operadores: ] Implementação específica do tipo: O operador ==

é comparado com base no tipo de objeto de tempo de compilação, enquanto

string.equals () é polimórfico, o que significa que sua implementação depende do tipo de tempo de execução do objeto comparado. Processamento de valor null:

    ==
  1. O operador não lançará uma exceção ao comparar referências nulas, enquanto string.equals () se algum parâmetro estiver vazio, a nullReferexception será Thrown.
  2. Exemplo de demonstração de diferenças ] Para ilustrar essas diferenças, considere o seguinte código: objeto x = new StringBuilder ("hello"). tostring (); objeto y = new StringBuilder ("Hello"). ToString (); if (x.equals (y)) // true if (x == y) // false
  3. Embora o
X

e y y

] y

operador retorna

false
object x = new StringBuilder("hello").ToString();
object y = new StringBuilder("hello").ToString();

if (x.Equals(y)) // True

if (x == y) // False
).

string xs = (string) x; string ys = (string) y; if (xs == ys) // true para concluir enquanto string.equals () e ==

Os operadores geralmente são usados ​​de forma intercambiável, é importante entender suas nuances na implementação e processamento de valor nulo. Para garantir comparações de string confiáveis ​​e consistentes, o método
 string.equals ()  geralmente é recomendado, especialmente ao comparar diferentes tipos de objetos ou lidar com referências vazias. 
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3