|
After_Thought 0 / 0 / 0 Регистрация: 28.07.2021 Сообщений: 9 |
||||||||
|
1 |
||||||||
|
28.07.2021, 07:57. Показов 3781. Ответов 2 Метки нет (Все метки)
Добрый день, возникла ошибка при сравнении char’а из списка и определённой буквы. Писал до этого на питоне, где можно было позволить себе такие конструкции
Можно-ли сделать что-то подобное на C#? Вот полный код:
__________________
0 |
|
Max61 171 / 131 / 63 Регистрация: 02.05.2021 Сообщений: 442 |
||||||||||||
|
28.07.2021, 08:04 |
2 |
|||||||||||
|
РешениеЗамените » » на ‘ ‘ здесь:
получиться:
Добавлено через 3 минуты
1 |
|
0 / 0 / 0 Регистрация: 28.07.2021 Сообщений: 9 |
|
|
28.07.2021, 08:05 [ТС] |
3 |
|
Спасибо!
0 |
- Remove From My Forums
-
Question
-
User-501297529 posted
I am receiving this error on with this code and I am not sure what I am missing.
String strFirstName = string.Empty, strLastName = string.Empty; if (txtNameOnCard.Text.IndexOf(" ") != -1) { strFirstName = txtNameOnCard.Text.Split(' ')[0]; strLastName = txtNameOnCard.Text.Split(' ')[1]; try { if(txtNameOnCard.Text.Split(' ')[2] > ' ') { strLastName = txtNameOnCard.Text.Split(' ')[2]; } } catch { } } else { strFirstName = txtNameOnCard.Text; }
Answers
-
User656402446 posted
Problem is this.
txtNameOnCard.Text.Split(‘ ‘)[2] > ‘ ‘
‘ ‘ is used for char space. You may need to use » » instead. because txtNameonCard.Text.spilt(‘ ‘) spit into string and you are comparing it with a char, which is wrong.
Using » » will solve your issue
-
Marked as answer by
Thursday, October 7, 2021 12:00 AM
-
Marked as answer by
I am getting the error below, and I don’t know how to fix it. I just want to learn but cant figure this one out. I tried to replace it with an equal (=) and with lots of things but no use, the code is:
if (keyinfo.KeyChar == "a")
{
}
This is the error:
0019 Operator ‘==’ cannot be applied to operands of type ‘char’ and ‘string’
How can I avoid getting this error?
Idos
14.9k14 gold badges56 silver badges72 bronze badges
asked Mar 3, 2016 at 17:43
3
Use 'a' and not "a", the difference between char and string is subtle here but substantial.
answered Mar 3, 2016 at 17:45
IdosIdos
14.9k14 gold badges56 silver badges72 bronze badges
Итак, вопрос в том, как вы разрешите эту ошибку?
Это зависит от того, чего вы пытаетесь достичь. Давайте посмотрим на соответствующую строку:
if (middleName[0] != "")
Что вы действительно пытаетесь определить здесь? Не имеет смысла спрашивать, является ли первый символ middleName (что является middleName[0]) является пустой строкой. Если бы вы проверяли, равно ли он «X» (или какой-то другой односимвольной строки), я мог бы подумать, что вы хотите, if (middleName.StartsWith(...)).
Но если вы на самом деле просто пытаетесь выяснить, является ли middleName не пустым, вы можете использовать:
if (middleName != "")
или если middleName также может быть нулевым, и вы хотите обнаружить это, вы можете захотеть:
if (!string.IsNullOrEmpty(middleName))
На самом деле, если middleName пуст, тогда middleName[0] будет генерировать middleName[0] IndexOutOfRangeException.
Как побочный вопрос — если это действительно не одноразовый, это предполагает, что вы должны найти другую книгу. В то время как ошибки могут проскользнуть, вы действительно, действительно должны быть в состоянии ожидать кода в книге для компиляции (если только она не пытается продемонстрировать сбой). Возможно, вы захотите изменить свой вопрос, чтобы назвать и позорить рассматриваемую книгу 
displayFullName и имя переменной FullName в С#, также несколько задевает.)

Сообщение было отмечено After_Thought как решение