c# confusos en la comparación de cadenas: ¿el operador string.equals ()
y el operador [&] == ?
string.equals () y el operador de signo igual
== se comporta exactamente igual.
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 y tvi.header
tvi.header ] tvi, el
== operator devuelve
falso string.equals ()
el método devuelve . Esto plantea la pregunta: ¿por qué estos dos métodos de comparación producen resultados diferentes?
Diferencias clave entre
y ==
Hay dos diferencias fundamentales entre
string.equals ()
y ==
]
Tipo de implementación específica: el operador
NULL Value Processing:
== se lanzará excepción.
Ejemplo de demostración de diferencias
objeto x = new StringBuilder ("Hello"). ToString (); objeto y = nuevo StringBuilder ("Hello"). ToString (); if (x.equals (y)) // Verdadero if (x == y) // false
aunque el
object x = new StringBuilder("hello").ToString();
object y = new StringBuilder("hello").ToString();
if (x.Equals(y)) // True
if (x == y) // False
y ] y ] Operator devuelve
falso porque se compara en función del tipo de tiempo de compilación del objeto (
objeto que son diferentes. Para obtener la comparación correcta, el objeto debe convertirse explícitamente al tipo apropiado (en este caso
string ).
string xs = (string) x;
cadena ys = (string) y;
if (xs == ys) // true
string xs = (string)x;
string ys = (string)y;
if (xs == ys) // True
mientras que los operadores string.equals () y ==
generalmente se usan indistintamente, es importante comprender sus matices en la implementación y el procesamiento de valor nulo. Para garantizar comparaciones de cadenas confiables y consistentes, generalmente se recomienda el método string.equals () , especialmente cuando se comparan diferentes tipos de objetos o maneje referencias vacías.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3