Unity: сравнение строк не работает в этом случае? - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь сравнить строки в функции, чтобы иметь возможность что-то делать, если это правда. Однако по какой-то причине две строки, которые я сравниваю, никогда не равны друг другу.

Я создаю новую строку в функции, получаю данные из Json, а затем сравниваю эту строку с другой строкой в другой класс. Это не работает по какой-то причине. Отладка показывает, что обе строки равны, но оператор if возвращает false.

Я создал две другие строковые переменные (hello & hello2) с одинаковым значением («Hello»), и на этот раз он сравнивается правильно.

Проверьте изображения ниже. Что я делаю неправильно? Как вы видите в консоли, обе строки имеют одинаковое значение:

Изображение 1. Здесь я создаю строку (zoneId).

enter image description here

Изображение 2. Далее в той же функции, что и для -l oop. Здесь я пытаюсь сравнить строку, созданную в этой функции, с другой строкой из другого класса. enter image description here

Рисунок 3. Как вы можете видеть в консоли, он проходит через jsonArray. Но он возвращает false, хотя ясно, что обе строки имеют одинаковое значение. enter image description here

Рисунок 4 и 5. Здесь я тестирую две другие строки внутри функции, и они работают нормально. Есть ли что-то для вызова строки из другого класса?

enter image description here enter image description here

Вот как моя другая строка в userInfo настроено:

public string userID { get; private set; } 

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Вам нужно использовать string.Equals для сравнения строк вместо оператора == или! =.

Являются ли операторы string.Equals () и == действительно одинаковыми?

0 голосов
/ 21 января 2020

На рисунке 3 есть ли дополнительный пробел перед вторым 2?

Как вы обрабатываете Main.Instance.userInfo.zoneID?

...