Показано с 1 по 10 из 10

Тема: C# - покраска консоли, вопрос

  1. #1
    Старый знакомый
    Автор темы
    Аватар для Deniss
    Регистрация
    09.12.2004
    Адрес
    Эстония
    Сообщений
    528

    По умолчанию C# - покраска консоли, вопрос

    Известно, что покраска в консоли на Шарпе выглядит типа того: Console.BackgroundColor = ConsoleColor.Red;
    Собсно, вопрос: возможно ли вместо цвета буквами (Red) как-либо подставить переменную? Тупое подклеивание вместо "Red" строковой переменной, естественно, вызывает баттхёрт и ни к чему не ведет. Гугла стыдливо переводит на другие темы.

  2. #2
    внутре нейронка Аватар для Ka4aN
    Регистрация
    25.05.2011
    Адрес
    Рязань
    Возраст
    38
    Сообщений
    2,869

    По умолчанию Re: C# - покраска консоли, вопрос

    А присваивание переменной, объявленной типа Color, не помогает?

  3. #3
    Старый знакомый
    Автор темы
    Аватар для Deniss
    Регистрация
    09.12.2004
    Адрес
    Эстония
    Сообщений
    528

    По умолчанию Re: C# - покраска консоли, вопрос

    Я в Шарпе, конечно, человек новый... но тип переменной color - это что-то не укладывающееся даже для меня.

  4. #4
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,360

    По умолчанию Re: C# - покраска консоли, вопрос

    Цитата Сообщение от Deniss Посмотреть сообщение
    Я в Шарпе, конечно, человек новый... но тип переменной color - это что-то не укладывающееся даже для меня.
    А что тут необычного? Color это структура: http://msdn.microsoft.com/ru-ru/libr...v=vs.110).aspx
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  5. #5
    flipper
    Гость

    По умолчанию Re: C# - покраска консоли, вопрос

    Все верно, если вы присваиваете значение типа колор, соотв переменная должна быть типа колор, а как еще.
    Цитата Сообщение от Deniss Посмотреть сообщение
    Тупое подклеивание вместо "Red" строковой переменной, естественно
    Является неявным преобразованием. Неявное преобразование только для ограниченного числа типов работает, и это не тот случай.

    И кстати, не просто колор.. в консоли он свой

    Код:
    ConsoleColor ConsColor = ConsoleColor.Blue;
                System.Console.BackgroundColor = ConsColor;

  6. #6
    Не хочу! Аватар для Alex
    Регистрация
    20.03.2003
    Адрес
    Worldwide
    Возраст
    61
    Сообщений
    36,194

    По умолчанию Re: C# - покраска консоли, вопрос

    Цитата Сообщение от Deniss Посмотреть сообщение
    Тупое подклеивание вместо "Red" строковой переменной, естественно, вызывает баттхёрт и ни к чему не ведет.
    потому что оно не строковое а uint32
    "Замполит, чайку?"(с)"Охота за Красным Октябрем".
    "Ну что, можете меняться обратно."(с)типа анек.
    <-- http://altor1.narod.ru --> Вопросы - в личку, е-мейл, скайп.

  7. #7
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,360

    По умолчанию Re: C# - покраска консоли, вопрос

    Цитата Сообщение от flipper Посмотреть сообщение
    Все верно, если вы присваиваете значение типа колор, соотв переменная должна быть типа колор, а как еще.

    Является неявным преобразованием. Неявное преобразование только для ограниченного числа типов работает, и это не тот случай.

    И кстати, не просто колор.. в консоли он свой
    Да, точно, в консоли это не структура, а перечисление, так как там число цветов ограничено.
    А то, что неявное преобразование не работает, так можно использовать явное:
    Код:
    Console.BackgroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), "Black");
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

  8. #8
    Старый знакомый
    Автор темы
    Аватар для Deniss
    Регистрация
    09.12.2004
    Адрес
    Эстония
    Сообщений
    528

    По умолчанию Re: C# - Смена кодировки в консоли

    Спасибо всем откликнувшимся, тему пришлось отложить на долгое время, в итоге, пришлось тупо писать цвета вручную, потому что ничего из предложенного не получилось (наверное, я тупка).
    Дабы не плодить сущности, продолжу здесь.

    Скажите, как в той же консоли менять кодировку на ходу? Win 8.1 eng, для non-unicode программ установлен предпочтительный язык русский. Посему, прекрасно отображаются как русские, так и английские буквы, но я хочу и то, и другое, и псевдографику, к примеру. Все найденные средства, как то
    Console.Write("u\num"); или Console.Write(char(num)); (здесь num - код символа) неизменно выдает знаки вопроса. В С++ я легко обходил это сменой Setlocale, но не могу найти замену этому в Шарпе. Варианты типа через Encoding выдают ошибку еще на стадии ввода. Есть ли простой способ?
    Спасибо.

  9. #9
    Старый знакомый
    Автор темы
    Аватар для Deniss
    Регистрация
    09.12.2004
    Адрес
    Эстония
    Сообщений
    528

    По умолчанию Re: C# - покраска консоли, вопрос

    Спасибо, вопрос снялся. Случайно выяснил опытным путем, что писать в формате (char)0x0000 и никак иначе у меня не получается.
    Последний раз редактировалось Deniss; 15.01.2015 в 14:30.

  10. #10
    Завсегдатай Аватар для Nikkov
    Регистрация
    01.11.2005
    Адрес
    Омск, Сибирь
    Возраст
    51
    Сообщений
    1,360

    По умолчанию Re: C# - покраска консоли, вопрос

    В своих проектах я использовал этот класс для вывода отладочной инфы на консоль. Может будет полезным.
    Электроника наука слабоизученная (c)
    Неизвестный специалист антенного хозяйства по поводу периодического пропадания сигнала в коллективной антенне

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •