умолчанию задается как стандартный поток ввода системы.
SetError Перенаправляет свойство Error для использования указанного потока TextWriter.
SetIn Перенаправляет свойство In для использования указанного потока TextReader.
SetOut Перенаправляет свойство Out для использования указанного потока TextWriter.
Write Перезагруженный. Записывает указанную информацию в Console.Out.
WriteLine Перезагруженный. Записывает информацию, за которой следует конец строки в Console.Out.

Как можно видеть, все члены Console являются статическими. static является примером модификатора C#. Он обладает тем же значением, что и его аналог в Java, т.е. делает указанную переменную или метод принадлежащим всему классу, а не одному какому-то экземпляру класса. Мы обсудим модификаторы более подробно позже в этом приложении.

С помощью мощных методов из класса Console можно записать эквивалент класса JavaEcho на C# следующим образом:

class CSEchoer {

 static void Main(string[] args) {

  string userInput = System.Console.ReadLine();

  System.Console.WriteLine('You said : ' + userInput);

 }

}

Приведенный выше код значительно короче и легче, чем его аналог на Java. Статический метод Console.WriteLine предоставляет одну полезную вещь, а именно, возможность использовать форматированные строки. Гибкость форматированных строк может быть проиллюстрирована написанием простой игры, где ввод пользователя применяется для создания рассказа. Код EchoGame представлен ниже:

class EchoGame {

 static void Main(string[] args) {

  System.Console.WriteLine('Once upon a time in a far away' + '?');

  string userInput1 = System.Console.ReadLine();

  System.Console.WriteLine('a young prince ?');

  string userInput2 = System.Console.ReadLine();

  System.Console.WriteLine('One day while?');

  string userInput3 ? System.Console.ReadLine();

  System.Console.WriteLine('He came across a ?');

  string userInput4 = System.ConsoleReadLine();

  System.Console.WriteLine('The prince ?');

  String userInput5 = System.Console.ReadLine();

  System.Console.WriteLine('Once upon a time in a far away'

   + ' {0}, a young prince {1}. One day'

   + 'while {2}, He came across a (3). The '

   + 'prince {4} ! ', userInput1, userInput2,

   userInput3, userInput4, userInput5);

 }

}

Точки вставки заменяются предоставленными аргументами, начиная с индекса {0}, который соответствует самой левой переменной (в данном случае userInput1). Можно подставлять не только строковые переменные, и не обязательно использовать только переменные или переменные одного типа. Любой тип данных, который может вывести метод WriteLine, допустим в качестве аргумента, включая строковые литералы или реальные значения. Не существует также ограничений на число точек вставки, которые могут добавляться к строке, пока их не больше общего числа аргументов. Отметим, что исключение точек вставки из строки приведет к тому, что переменные не будут выводиться. Необходимо, однако, иметь аргумент для каждой определенной точки вставки, индекс которой в списке аргументов соответствует индексу точки вставки. В следующем листинге, например, удаление {1} допустимо, пока имеется три аргумента. В этом случае {0} соответствует strA и {2} соответствует strC:

Console.WriteLine('hello {0} {1} {2}', strA, strB, strC);

Компиляция

При описании некоторых различий между JRE Java и CLR C# кратко упоминались некоторые детали того, как написанный на соответствующем языке код компилируется и выполняется. Хотя код обоих языков компилируется в некоторую промежуточную форму, байт-код версии Java никогда не компилируется повторно в собственные инструкции машины (если только не используется компилятор в собственный код). Вместо этого байт-код требует для выполнения среду времени выполнения, и в частности, виртуальную машину. Имя компилированного файла связано с именем файла, в котором находится исходный код, который в свою очередь связан с именем открытого класса в этом файле. В случае определения нескольких классов в одном файле каждое определение класса будет создавать файл класса, который соответствует имени определенного класса. Например, возьмем исходный файл Test.java со следующим кодом:

// Test.java

class x {}

class у {}

class z {}

Компиляция этого файла будет создавать три файла классов: х.class, у.class, z.class. Один (и только один для каждого исходного файла) из этих классов может быть объявлен открытым следующим образом:

// Test.java

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату