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
в С#, также несколько задевает.)