netlib.narod.ru | < Назад | Оглавление | Далее > |
Пространства имен также играют важную роль в документировании .NET. Например, документацию по классу Console нужно искать в документации пространства имен System. Вы увидите, что WriteLine — не единственный метод вывода класса Console. Метод Write очень похож на WriteLine тем, что также осуществляет вывод на консоль. Отличие в том, что WriteLine завершает свой вывод возвратом каретки.
Имеется 18 описаний метода Write и 19 — метода WriteLine, каждое со своими параметрами. Такое использование нескольких версий одного и того же метода известно как перегрузка (overload). Компилятор обычно по количеству и типам передаваемых параметров может определить, какой из перегруженных методов нужно вызвать программе.
Следующая программа демонстрирует три разных способа вывода одной и той же информации.
ConsoleAdder.cs
//-------------------------------------------------- // ConsoleAdder.cs (C) 2001 by Charles Petzold //-------------------------------------------------- using System; class ConsoleAdder { public static void Main() { int a = 1509; int b = 744; int c = a + b; Console.Write("Сумма "); Console.Write(a); Console.Write(" и "); Console.Write(b); Console.Write(" равна "); Console.WriteLine(c); Console.WriteLine("Сумма " + a + " и " + b + " равна " + c); Console.WriteLine("Сумма {0} и {1} равна {2}", a, b, c); } }
Программа выведет:
Сумма 1509 и 744 равна 2253 Сумма 1509 и 744 равна 2253 Сумма 1509 и 744 равна 2253
Программистов, использующих язык С, обнадежит тот факт, что С# поддерживает знакомый тип int и не использует оператор присваивания :=, как Algol или Pascal.
В первом способе программа для показа строки использует вызываемые по отдельности методы Write и WriteLine, каждый из которых принимает один параметр. Write и WriteLine могут принимать параметры любых типов и преобразовывать их в строку для показа.
Во втором способе применяется техника, непривычная для программистов на С, зато хорошо знакомая программистам на BASIC, — конкатенация строк при помощи знака «+». С# преобразует переменные в строки, объединяет все строки в единое целое и передает результат в функцию WriteLine. В третьем способе используется строка форматирования с тремя полями подстановки — {0}, {1} и {2} — для трех других параметров. Поля подстановки могут содержать дополнительную информацию для форматирования. Скажем, {0:С} представляет число как денежную сумму: показывается знак доллара (или другой символ валюты в зависимоcти от региональных параметров ОС), запятая, два десятичных знака, если число отрицательное, то строка заключается в скобки. Поле подстановки {0:-Х8} показывает число в шестнадцатеричном виде, при необходимости дополняя его нулями до 8 знаков. Вот некоторые примеры спецификаций формата в применении к целому числу 12 345:
Различные спецификации формата в применении к целому числу 12345
Тип форматирования | Код формата | Результат |
Currency (денежные суммы) | C | $12345.00 |
C1 | $12,345.0 | |
C7 | $12,345.0000000 | |
Decimal (десятичный) | D | 12345 |
D1 | 12345 | |
D7 | 0012345 | |
Exponential (экспоненциальный) | E | 1.234500E+004 |
E1 | 1.2E+004 | |
E7 | 1.2345000E+004 | |
Fixed point (с фиксированной точкой) | F | 12345.00 |
F1 | 12345.0 | |
F7 | 12345.0000000 | |
General (общий) | G | 12345 |
G1 | 1E4 | |
G7 | 12345 | |
Number (числовой) | N | 12,345.00 |
N1 | 12,345.0 | |
N7 | 12,345.0000000 | |
Percent (процент) | P | 1,234,500.00 |
P1 | 1,234,500.0 | |
P7 | 1,234,500.0000000 | |
Hexadecimal (шестнадцатеричный) | X | 3039 |
X1 | 3039 | |
X7 | 0003039 | |
Даже если вы не собираетесь использовать вывод на консоль при программировании для .NET, вполне вероятно, что эти спецификации формата пригодятся вам при работе с методом String.Format. Точно так же, как Console.Write и Console.WriteLine являются в .NET аналогами функции С printf, метод String.Format в .NET аналогичен функции sprintf.
netlib.narod.ru | < Назад | Оглавление | Далее > |