Преобразованная строка ToCharArray не возвращает требуемое значение - PullRequest
0 голосов
/ 24 октября 2019

Это весь мой код:

using System;

namespace start
{
class Program
{
    static void Main(string[] args)
    {
        while (true)
        {
            try
            {
                string nevim = "";                          // prázdná proměnná pro zbytek
                Console.WriteLine("zadej číslo, které chceš převést do binární soustavy: ");

                ulong vstup = ulong.Parse(Console.ReadLine());  // uložíme vstup do proměnné
                while (vstup > 0)                           //pokud je vstup větší než 0
                {
                    ulong pocet = vstup % 2;                  // zjistí zbytek po dělení dvojkou
                    nevim = nevim + pocet;                  //   do proměnné přidá zbytek
                    vstup = vstup / 2;                      //   zadané číslo vydělí 2        


                }
                char[] array = nevim.ToCharArray();        
                Array.Reverse(array);                       //otočí výsledek
                Console.WriteLine(array);
                Console.WriteLine(array + "test");



                Console.ReadKey();
            }

            catch
            {
                Console.Clear();
                Console.WriteLine("nastala nějaká chyba TYY GEJI");
                Console.WriteLine("stiskni libovolné tlačítko pro pokračování");
                Console.ReadKey();
                Console.Clear();
            }
        }
    }
}
}

Я попытался "Метод преобразования To.CharArray", чтобы перевернуть строку, когда я пытаюсь получить вывод в порядке, например:

input = 123

вывод:

1111011

но когда я пытаюсь добавить что-то к выводу, например:

Console.WriteLine(array + "test");

, вывод:

System.Char[]test

и яхотите это как вывод:

1111011 test

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Просто сделай:

Console.WriteLine(new string(array) + "test");
0 голосов
/ 24 октября 2019

Вы пытаетесь добавить string к char[]. В этом случае .net пытается преобразовать оба значения в один и тот же тип, вызывая array.ToString() за сценой. По умолчанию возвращает имя типа. В вашем случае это System.Char[]. Чтобы получить ожидаемый результат, вы должны либо создать строку из вашего массива:

Console.WriteLine(new String(array) + "test");

, либо преобразовать «тест» в массив и объединить массивы. Проверьте Объединение двух массивов в .NET для образца

...