Вход/Регистрация
C# для профессионалов. Том II
вернуться

Ватсон Карли

Шрифт:

(i) checked {block_of_code}

unchecked { block_of_code}

(ii) checked (expression)

unchecked (expression)

block_of_code
содержит код, в котором инструкция
checked/unchecked
наблюдает за переполнением, a
expression
представляет выражение, в котором
checked/unchecked
наблюдает за переполнением в конечном значении. Показанный далее пример иллюстрирует использование
checked/unchecked
:

// OverflowEX.cs

public class OverflowEX {

 public static void Main(String args) {

sbyte x = 0; // помните, что необходимо изменить byte на sbyte

for (int i = 0; i < 130; i++) {

checked {

// можно также использовать checked(x++)

x++;

Console.WriteLine(x);

}

}

 }

}

□ Подход с ключом компилятора. Для контроля переполнения во всем приложении может использоваться настройка компилятора

/checked+
. Чтобы проиллюстрировать это, удалим инструкцию
checked
из приведенного выше примера и попытаемся компилировать его, используя флаг
/checked+
. С его помощью можно включать и выключать проверку арифметического переполнения, изменяя состояние конфигурационных свойств на странице свойств проекта. Задание значения как true будет включать проверку переполнения.

При включенной проверке переполнения можно обсудить использование инструкции

unchecked
. По сути она предоставляет функциональность для произвольного исключения проверки выражений или блоков инструкций в то время, когда включена проверка во всем приложении. В примере ниже предыдущая инструкция заменяется инструкцией
unchecked
. Компиляция и выполнение этого кода будет создавать вывод, аналогичный выводу
OverflowEX.java
.

// OverflowEX.сs.

public class OverflowEX {

 public static void Main(String[] args) {

sbyte X = 0;

for (int i = 0; i < 130; i++) {

unchecked { // можно также использовать unchecked(x++)

x++;

Console.WriteLine(x);

}

}

 }

}

Входные и выходные данные

Возможность собрать входные данные из командной строки и вывести данные в командной строке является интегральной частью функциональности ввода/вывода в Java. Обычно в Java необходимо создать экземпляр объекта

java.io.BufferedReader
, используя поле
System.in
, чтобы извлечь ввод из командной строки. Ниже представлен простой класс Java —
JavaEcho
, который получает ввод с консоли и выводит его обратно, чтобы проиллюстрировать использование пакета
Java.io
для сбора и форматирования ввода и вывода:

// JavaEcho.java

import java.io.*;

public class JavaEcho {

 public static void main(String[] args) throws IOException {

BufferedReader stdin = new BufferedReader(new InputSreamReader(System.in));

String userInput = stdin.readLine;

System.out.println("You said: " + userInput);

 }

}

Класс

System.Console
предоставляет методы в C#, которые дают аналогичную функциональность для чтения и записи из и в командную строку, Нет необходимости в каких-либо дополнительных объектах, класс
Console
предоставляет методы, которые могут читать целые строки, читать символ за символом и даже показывать описанный выше поток, из которого выполняется чтение. Важно отметить, что эту функциональность дает
System.Console
без создания экземпляра объекта
Console
. Фактически можно обнаружить, что невозможно создать экземпляр объекта
Console
. Члены класса
Console
кратко описаны в таблицах ниже:

Открытые статические свойства (общие) Описание
Error
Получает стандартный выходной поток ошибок системы
In
Получает стандартный входной поток ошибок системы
Out
Получает стандартный поток вывода системы
Открытые статические методы (общие) Описание
OpenStandardError
Перезагруженный. Возвращает стандартный поток ошибок.
OpenStandardInput
Перезагруженный. Возвращает стандартный поток ввода.
OpenStandardOutput
Перезагруженный. Возвращает стандартный поток вывода.
Read
Читает следующий символ из стандартного потока ввода.
ReadLine
Читает следующую строку символов из
Console.In
, который по умолчанию задается как стандартный поток ввода системы.
SetError
Перенаправляет свойство
Error
для использования указанного потока
TextWriter
.
SetIn
Перенаправляет свойство
In
для использования указанного потока
TextReader
.
SetOut
Перенаправляет свойство
Out
для использования указанного потока
TextWriter
.
Write
Перезагруженный. Записывает указанную информацию в
Console.Out
.
WriteLine
Перезагруженный. Записывает информацию, за которой следует конец строки в
Console.Out
.
  • Читать дальше
  • 1
  • ...
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: