Не удается неявно преобразовать тип string в system windows forms label

Обновлено: 04.07.2024

Мне нужно вычислить 3 переменные, метод которых вызывается из другого класса. Но прежде чем я напечатаю результат, я должен преобразовать результат int в заранее определенную букву значения. Но мой код не работает. У меня ошибка в коде:

Я пытался преобразовать функцию в строку, но код все равно не работает.

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

Во-первых, я предлагаю извлечь метод (бизнес-логику и разделение пользовательского интерфейса). В вашем случае бизнес-логика находится в Nilai учебный класс:

затем используйте его (пользовательский интерфейс в Form1 )

в ваш if заявление на:

Я думаю, это просто. когда nilaiHuruf1 является текстовым полем, вы не можете напрямую присвоить ему строку - вы должны установить Text свойство текстового поля:

В рамках nilaiHuruf() метод return nilaiHuruf1.ToString(); вернет полное имя типа текстового поля, а не то, что вы ожидаете от текстового поля. Использовать return nilaiHuruf1.Text; вместо. В дальнейшем ToString() это метод, который есть у каждого объекта.

Обновить

Когда значение nilaiHuruf1.Text изменяется внутри метода nilaiHuruf() зачем вам вернуть это значение и снова установить его на nilaiHuruf1 текстовое окно? Удалите назначение следующим образом, и все должно работать:

Исключением является то, что ваш код не возвращает значение всех путей кода. Если вы посмотрите на свое последнее "если", то другого у него нет. Вы должны вернуть что-то из всех блоков кода.

И тебе просто нужно вернуться nilaiHuruf1.Text

Ошибка Cannot implicitly convert type 'string' to 'System.Windows.Forms.TextBox' возникает, потому что вы назначаете возвращаемую строку из функции непосредственно TextBox. Вам нужно изменить это, чтобы использовать Text свойство - nilaiHuruf1.Text = nilaiHuruf();

Ошибка not all code paths return a value возникает, потому что вы не обрабатываете все случаи для значения int. В частности, вы последний else if . Измените его на просто else поскольку вы уже прошли все остальные оценки.

В идеале код должен соответствовать СОП и может быть упрощен до следующего вида:

Поскольку функция nilaiHuruf больше не зависит от каких-либо значений в форме, это может быть возможность переместить его в Nilai класс в зависимости от цели этого класса.

Читайте также: