Максимальное количество строк в консоли [дубликат]

Симон Моурир дал этот пример :

object o = null;
DateTime d = (DateTime)o;  // NullReferenceException

, где unboxing преобразование (литье) из object (или из одного из классов System.ValueType или System.Enum или из типа интерфейса) - тип значения (кроме Nullable<>) сам по себе дает NullReferenceException.

В другом направлении конверсия бокса из a Nullable<>, которая имеет HasValue, равную false , на ссылочный тип, может дать ссылку null, которая затем может привести к NullReferenceException. Классический пример:

DateTime? d = null;
var s = d.ToString();  // OK, no exception (no boxing), returns ""
var t = d.GetType();   // Bang! d is boxed, NullReferenceException

Иногда бокс происходит по-другому. Например, с помощью этого не общего метода расширения:

public static void MyExtension(this object x)
{
  x.ToString();
}

следующий код будет проблематичным:

DateTime? d = null;
d.MyExtension();  // Leads to boxing, NullReferenceException occurs inside the body of the called method, not here.

Эти случаи возникают из-за специальных правил, используемых во время выполнения при боксе Nullable<> экземпляров.

264
задан Uri 13 May 2010 в 16:56
поделиться

7 ответов

В разделе Window > Preferences перейдите в раздел Run/Debug > Console, затем вы увидите опцию «Limit console output». Вы можете снять этот флажок или изменить номер в текстовом поле «Размер буфера консоли (символов)» ниже.

(Это в Galileo, Kepler, Juno, Luna, Neon, Mars, Helios CDT и Oxygen)

465
ответ дан detly 28 August 2018 в 13:18
поделиться
  • 1
    Я не могу поверить, что это мой самый высокий голос на SO. Я запомнил стандарт C ни для чего. – detly 26 June 2013 в 22:54
  • 2
    Внимание! Отключение этой опции, к сожалению, очень затруднительно. Деактивация ограничения вызывает все виды странного поведения (Juno) в отношении памяти. Я бы посоветовал это сделать. – AndreasT 21 January 2014 в 16:48
  • 3
    @detly Этот параметр есть и в Helios – Sudheer Kumar 18 February 2014 в 06:13
  • 4
    Если вы отключите ограничение, возможно, у вас проблемы с памятью, потому что вы никогда не очищаете консоль. Нажмите на бумагу с серым X на нем один раз и некоторое время. – Roger 28 March 2014 в 22:06
  • 5
    @mapto Woohoo, моя ферма репутации с одним ответом продолжается! – detly 17 January 2018 в 22:48

Откройте меню Windows> Настройки.

Разверните настройки Run / Debug> Console.

Установите Console buffer size (characters) на нечто большее. 2147383647 / ~ 2GB - это верхний предел (или 1000000 / ~ 1MB в более старых версиях). Или просто снимите флажок Limit console output.

34
ответ дан Dolph 28 August 2018 в 13:18
поделиться
  • 1
    Верхний предел теперь составляет 2147383647, около 2 ГБ, начиная с версии Oxygen.1a Release (4.7.1a) Build id: 20171005-1200. – tyblu 15 October 2017 в 20:31

Чтобы увеличить размер буфера консоли в eclipse

Перейдите в окно> Настройки> Запустить / Отладить> Консоль и вы можете указать любое количество символов от 1000 до 1000000. enter image description here [/g0]

8
ответ дан madhu 28 August 2018 в 13:18
поделиться
  • 1
    Верхний предел теперь составляет 2147383647, около 2 ГБ, начиная с версии Oxygen.1a Release (4.7.1a) Build id: 20171005-1200. – tyblu 15 October 2017 в 20:32

Окно> Настройки, перейдите в раздел «Выполнить / Отладка> Консоль >> >>« Конечный вывод консоли ». Размер буфера консоли (символы):» (Этот параметр можно увидеть в Eclipse Indigo, но он ограничивает размер буфера на уровне 1 000 000 )

3
ответ дан Poomcyber 28 August 2018 в 13:18
поделиться

Альтернатива

Если ваша консоль не пуста, щелкните правой кнопкой мыши в области консоли> Настройки ...> измените значение размера буфера консоли (символы) (рекомендуется) или снимите флажок Конечный вывод консоли (не рекомендуется):

3
ответ дан ROMANIA_engineer 28 August 2018 в 13:18
поделиться

В MAC OS X 10.9.5 и Eclipse Luna Service Release 1 (4.4.1) его не найдено в меню «Окно», а вместо этого: Eclipse> «Настройки»> «Выполнить / Отладка»> «Консоль».

7
ответ дан slaman 28 August 2018 в 13:18
поделиться

Для пользователей CDT / C / C ++ build также отрегулируйте настройку

в окне> Предпочтения

в разделе C / C ++> Build> Console (!) [/ ​​g2]

(Это время в количестве строк.)

Это также влияет на «CDT Global Build Console».

12
ответ дан Zrin 28 August 2018 в 13:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: