CS0029 при записи элемента в строку C#

212
18 апреля 2022, 14:30

Когда я присваивал строке(string) элемент из массива символов компилятор пишет ошибку CS0029: Cannot implicitly convert type 'int' to 'string'.

Код:

char[] Arr = new char[3];
string Str = Arr[0] + Arr[1] + Arr[2];   // Тут компилятор выдает ошибку

Как возникает такая ошибка - не понимаю, может IDE глючная.

Answer 1

Так происходит потому, что тип char, как бы не казалось на первый взгляд, является не строкой, а кодом (int) символа UTF-16.
Если ближе к Вашей теме, то можно использовать интерполяцию строк, т.к. это является "синтаксическим сахаром", то для каждого char метод ToString будет вызван автоматически:

char[] arr = new char[3];
string str = $"{arr[0]}{arr[1]}{arr[2]}";

Либо, как уже указал Igor, использовать перегруженный конструктор String, передав в него либо весь массив, либо какой-либо его диапазон:

char[] arr = new char[3];
string str = new string(arr);
Answer 2
string Str = Arr[0].ToString() + ...
READ ALSO
Как реализуются иммутабельные записи в БД?

Как реализуются иммутабельные записи в БД?

При реализации проекта/схемы БД небольшой/тривиальной бухгалтерской программы возникла следующая проблемаПредставим себе несколько таблиц...

178
Как вывести элементы из Listbox

Как вывести элементы из Listbox

Имеется ComboBox, из которого пользователь выбирает строки, которые после этого отображаются на ListBoxХочу эти выбранные элементы вывести через...

235
Mysql + C# перенос информации

Mysql + C# перенос информации

Как из MySql phpmyadmin извлечь информацию из таблицы и перенести в Label?

131
Как убирать символы в тексте?

Как убирать символы в тексте?

Кароче, у меня есть панель с паролем и я хочу в случае чего убирать вбитые цифры, но не знаю как это реализовать, пробовал через Remove, не выходило

151